list.map可以在scala中使用字符串

时间:2017-07-26 02:17:58

标签: scala collections

str是否以某种方式隐式转换为str.charAt,因此map函数有效吗?

val str = "abcdefghij"
println(List.range(0, 10).map(str));

1 个答案:

答案 0 :(得分:5)

由于str是字符的Seq,.map上的str会调用给定的索引。

例如

scala> List.range(0, 10).map(str)
res0: List[Char] = List(a, b, c, d, e, f, g, h, i, j)

// or .apply
scala> List.range(0, 10).map(str.apply)
res7: List[Char] = List(a, b, c, d, e, f, g, h, i, j)

并且str(index)给出了索引的值,请参阅StringOps#apply(index: Int): Char

scala> "my string"(4)
res5: Char = t

其他ArraySeq示例,

scala> val array = Array(1, 2, 3, 4, 5)
array: Array[Int] = Array(1, 2, 3, 4, 5)

scala> List.range(0, 4).map(array)
res1: List[Int] = List(1, 2, 3, 4)

scala> val list = Seq(10, 20, 30, 40, 50)
list: Seq[Int] = List(10, 20, 30, 40, 50)

scala> List.range(0, 4).map(list)
res3: List[Int] = List(10, 20, 30, 40)