当前位置: 首页 > 知识库问答 >
问题:

Scala匹配字符串和数组

姜宏盛
2023-03-14
def doSth(obj: Any): Int = {
  obj match {
    case t: TraversableOnce[Any] => t.foldLeft(0)((rs: Int, i: Any) => ...)
    case other => ...
  }
}

反正有这样做的吗?

共有1个答案

海宁
2023-03-14

String不是TraversableOnce的子类型。这就是为什么它不会匹配TraversableOnce。

虽然String可以隐式转换为StringOps,这是TraversableOnce的子类型。检查predef.augmentstring

你可以这样做。在这种情况下,scala编译器将隐式地将string转换为stringops。如果传入“hello”,它将打印出类scala.collection.immutable.stringops

def doSth(obj: TraversableOnce[Any]): Int = {
    println(obj.getClass())
    obj.foldLeft(0)((rs: Int, i: Any) => ...)
}
def doSth(obj: Any): Int = {
  obj match {
    case t: TraversableOnce[Any] => t.foldLeft(0)((rs: Int, i: Any) => ...)
    case other => 
      println(other.getClass)
  }
}
 类似资料:
  • 问题 你想要匹配两个或多个字符串。 解决方案 计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。 levenshtein = (str1, str2) -> l1 = str1.length l2 = str2.length prevDist = [0..l2] nextDist = [0..l2] for i in [1..l1] by 1

  • 比如说我有这个: 我想做两件事: 1) 使其成为当且仅当用户准确键入<代码>时!测试和其他内容,它将在通道中打印出测试 2)使其成为如果用户键入首先后跟空格和至少一个其他字符串字符,它将打印出——例如:a)不会打印出任何东西,b)(后跟一个空格)不会打印出任何东西,c)不会打印出任何东西,d)不会打印出任何东西,但是e)将打印出, f)将打印出, g)将打印出, and h)将打印出等。 我只知道

  • 问题 你想匹配或者搜索特定模式的文本 解决方案 如果你想匹配的是字面字符串,那么你通常只需要调用基本字符串方法就行, 比如 str.find() , str.endswith() , str.startswith() 或者类似的方法: >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> # Exact match >>> text =

  • 问题内容: 我有一个字符串,其中单词“ LOCAL”多次出现。我使用该函数搜索该单词,但它也返回另一个单词“ Locally”。我如何准确匹配“本地”一词? 问题答案: 对于这种事情,正则表达式非常有用: \ b基本上表示单词边界。可以是空格,标点符号等。 编辑评论: 显然,如果您不想忽略这种情况,则可以删除flags = re.IGNORECASE。

  • 我正在尝试创建一个Lucene4.10索引。我只想在索引中保存我放入文档的确切字符串,witout标记化。 我在用StandardAnalyzer。 我试图搜索术语“燃料箱容量”@en(包括引号),所以我试图省略它们,并在术语周围添加了另外几个引号,以便让lucene理解我正在搜索整个文本。 如果我打印查询,我会得到:3:“燃料箱容量en”,但我不想拆分@符号上的文本。 我认为我的第一个问题是St

  • 主要内容:实例,创建字符串,实例,实例,字符串长度,实例,字符串连接,实例,创建格式化字符串,实例,String 方法以下实例将字符串赋值给一个常量: 实例 object Test {     val greeting : String = "Hello,World!"     def main (args : Array [String ] ) {       println ( greeting )     } } 以上实例定义了变量 greeting,为字符串常量,它的类型为 String