gpt4 book ai didi

scala - 值(value) ||不是字符串的成员 - scala

转载 作者:行者123 更新时间:2023-12-04 19:32:33 25 4
gpt4 key购买 nike

我正在使用字符串过滤功能,例如:

val strings = List("hi","I","am","here") //this list is a stream of words from Twitter
val mystrings = strings.filter(word => !word.contains("I" || "sam") // I need filter out certain stop words

过滤某些单词。但是我收到编译错误,说 - value || 不是 String 的成员。谁能告诉我哪里出错了?

最佳答案

String 上的方法 containsString 作为参数:

"foo".contains("foo") //True

所以,编译器试图解释 "I"|| "sam" 作为 String,因为这是 contains 的参数。在 Scala 中,此语句等效于 "I".||("sam")(在 "I" 上调用 || 方法>)。由于 String 上没有方法 ||,因此无法编译。

您的意思可能是 !(word.contains("I") || word.contains("sam"))。这是有道理的,因为我们现在在 word.contains("I") 返回的 Boolean 上调用 ||,并且 ||Boolean 上的一种方法(如文档所述 here )。所以你的整个陈述可能是:

strings.filter(word => !(word.contains("I") || word.contains("sam"))

也相当于:

strings.filter(word => !word.contains("I") && !word.contains("sam"))

如果您最终需要过滤很多短语,您也可以将其翻转:

val segments = Set("I", "sam")
strings.filter(word => segments.forall(segment => !word.contains(segment)))
//Equivalent
strings.filter(word => !segments.exists(word.contains))

关于scala - 值(value) ||不是字符串的成员 - scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127409/

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