List[T]
はサブタイプPartialFunction[Int, T]
である。今すぐList
はPartialFunction
の直接のサブクラスではありません。 PartialFunction
の形をしたSeq
の形はtrait Seq[+A] extends PartialFunction[Int, A]
です。
Seqは、List
のようなコレクションによって継承された特性であり、Lift
などのメソッドを返します。 私はそれを遠近法の問題と考える。
IはSeq
としてその時になり配列の要素型に値のIntから進み、そのisDefinedAt
方法length
まで0
から間隔のtrue
を返すPartialFunction
あります。
ルックhere。
マップの場合と同様に、すべてのマップはPartialFunction
を拡張する形容詞MapLike
を拡張します。今すぐMap[A,B]
はPartialFunction[A,B]
になります。 isDefinedAt
メソッドがを返す部分関数としてマップを定義すると、すべてkeys
と定義されます。
私はワークシートからサンプルをコピーしています。私はMap
をPartialFunction
に割り当て、同じことを示します。
val m = Map("a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4)
//> m : scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 3
//| , d -> 4)
val f2: PartialFunction[String, Int] = m //> f2 : PartialFunction[String,Int] = Map(a -> 1, b -> 2, c -> 3, d -> 4)
m.isDefinedAt("d") //> res5: Boolean = true
f2.isDefinedAt("e") //> res6: Boolean = false
ルックhereをご覧ください。
はこれを読む:http://www.alessandrolacava.com/blog/scala-seq-map-and-set-as-functions/ –
リンクいただきありがとうございます。 – barbara