Martin OderskyがScala-by-example(2014)で読んでいます。 61文字列からInt型への関数は、文字列Function1 [String、Int]のインスタンスとして と表されています。機能1は、以下のように定義される:このScalaサンプルのサブタイプ関数はどれですか?
trait Function1[-A,+B] {def apply(x: A): B}
それも言われ、さらにその
ダウンS => TがSのサブタイプである '=> T'、S「は、のサブタイプで提供しますSであり、TはT 'のサブタイプである。
彼は、次のコード例を使用しています。 val f: (AnyRef => Int) = x => x.hashCode() val g: (String => Int) = f g("abc")
をだからここに私の質問をしてくださいです。 StringはAnyRefのサブタイプなので、この例ではfはgのサブタイプを表していると仮定しています。あれは正しいですか? その場合、その決定のロジックを説明してください。あなたの例を実行するのと同じ結果を与えるスカラ端末で次のコードを実行http://docs.scala-lang.org/tutorials/tour/variances.html
:
yup。簡単でシンプルな - 意味があります。ありがとうございました! – TalBeno