gpt4 book ai didi

scala - 如何在Scala中从一组String中产生一组Char

转载 作者:行者123 更新时间:2023-12-02 06:31:18 25 4
gpt4 key购买 nike

我想用一组字符串中的第一个字符创建一个组。似乎我应该能够轻松地进行映射,但是我找不到正确的语法,也无法在SO或网络的其余部分找到它。我在这里:

val mySetOfStrings = scala.collection.immutable.Set[String]()
def charSet: Set[Char] = mySetOfStrings.map[Char]((s: String) => s.head)

//IDE tells me "Expression of type Char doesn't conform to expected type B"

谢谢。

最佳答案

IDE错误不正确,但是手动为map提供类型参数会导致您遇到问题,因为map的签名确实是:

final def map[B, That](f: (A) ⇒ B)(implicit bf: CanBuildFrom[List[A], B, That]): That

因此,实际的编译器错误是:
<console>:12: error: wrong number of type parameters for method map: [B, That](f: String => B)(implicit bf: scala.collection.generic.CanBuildFrom[scala.collection.immutable.Set[String],B,That])That
strings.map[Char](_.head)
^

请注意,有两个类型参数,而不是一个。但是,编译器将自行推断 Char
scala> val strings = Set("abc", "def", "ijk")

scala> strings.map(_.head)
res1: scala.collection.immutable.Set[Char] = Set(a, d, i)

手动提供类型参数必须看起来像这样:
scala> strings.map[Char, Set[Char]](_.head)
res6: Set[Char] = Set(a, d, i)

关于scala - 如何在Scala中从一组String中产生一组Char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com