相关疑难解决方法(0)

Scala中下划线的所有用途是什么?

我已经看了scala-lang.org上的调查列表,并注意到一个奇怪的问题:" 你能说出"_"的所有用途吗? " 你能?如果是,请在此处进行.我们赞赏解释性的例子.

scala

513
推荐指数
7
解决办法
13万
查看次数

scala中.map(...)和.map {...}之间的区别是什么

我是斯卡拉的新手.高阶函数跟随括号或括号块之间是否有任何差异?

例如:

  • List(1, 2, 3).map(i=> i + 1)

  • List(1, 2, 3).map {i => i + 1}

两者都得到相同的结果: List(2, 3, 4)

但是对于这个例子List(1, 2).map { println("Hi"); _ + 1 }结果如下,为什么'你好'只打印一次?

Hi
List[Int] = List(2, 3)
Run Code Online (Sandbox Code Playgroud)

scala

5
推荐指数
1
解决办法
997
查看次数

为什么使用下划线使这个列表理解只打印一个点?

在Scala 2.9.2中

List(List(1,5,4),List(7,9,11)).flatten.map {i => println(i); identity(i) }.find { _ % 2 == 0 }
Run Code Online (Sandbox Code Playgroud)

打印:

1
5
4
7
9
11
Option[Int] = Some(4)
Run Code Online (Sandbox Code Playgroud)

但

List(List(1,5,4),List(7,9,11)).flatten.map { println("."); identity(_) }.find { _ % 2 == 0 }
Run Code Online (Sandbox Code Playgroud)

打印

.
Option[Int] = Some(4)
Run Code Online (Sandbox Code Playgroud)

我必须承认,我对这种行为感到有些惊讶.Underscore似乎不仅仅是等效内联函数的简写,而是对代码有其他影响.这里发生了什么?

scala

1
推荐指数
1
解决办法
123
查看次数

标签 统计

scala ×3