相关疑难解决方法(0)

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

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

scala

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

Scala的隐藏功能

每个Scala开发人员都应该注意Scala的隐藏功能是什么?

请回答一个隐藏的功能.

scala hidden-features

149
推荐指数
24
解决办法
5万
查看次数

Scala foreach奇怪的行为

我想在Scala中使用漂亮的单行迭代迭代值列表.

例如,这个效果很好:

scala> val x = List(1,2,3,4)
x: List[Int] = List(1, 2, 3, 4)

scala> x foreach println
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用占位符_,它会给我一个错误:

scala> x foreach println(_ + 1)
<console>:6: error: missing parameter type for expanded function ((x$1) =>x$1.$plus(1))
       x foreach println(_ + 1)
                         ^
Run Code Online (Sandbox Code Playgroud)

这是为什么?这里不能编译推断类型?

scala

41
推荐指数
3
解决办法
2万
查看次数

有关Scala占位符的问题

请考虑Scala中的以下定义:

val f = ((_: Int) + 1).toString()
Run Code Online (Sandbox Code Playgroud)

代码为f指定函数文字_ + 1的字符串表示,这很自然,除了这不是我想要的.我打算定义一个接受int参数的函数,将其递增1,并返回其字符串格式.

要消除歧义,我必须编写一个带有显式参数的lambda表达式:

val g = (x: Int) => (x + 1).toString()
Run Code Online (Sandbox Code Playgroud)

那么我可以得出结论:占位符语法不适合复杂的函数文字吗?或者是否有一些规则说明函数文字的范围?似乎占位符不能嵌套在函数文字中的括号中(除了定义其类型所需的除外)

scala placeholder function-literal

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