次の A Tour of Scala の例は、タイプに基づいて適切な欠落メンバー (add および unit) を提供するために、implicit を使用する方法を示しています。コンパイラは、スコープ内の適切な暗黙的オブジェクトを選択します。ライブラリは、たとえばandまたはandでそれを使用します。List.sortBy
Ordering
List.sum
Numeric
ただし、クラス B での次の使用法は、(クラス A で暗黙的なパラメーターを使用しないのではなく) 暗黙的なパラメーターの有効な/推奨される使用法ですか?
class I
class A {
def foo(i:I) { bar(i) }
def bar(i:I) { baz(i) }
def baz(i:I) { println("A baz " + i) }
}
(new A).foo(new I)
class B {
def foo(implicit i:I) { bar }
def bar(implicit i:I) { baz }
def baz(implicit i:I) { println("B baz " + i) }
}
(new B).foo(new I)
私は主に暗黙的を使用して、スタックに沿ってパラメーターを渡すときに呼び出しサイトでの入力を節約します。