写成 _:type 的 Scala 表示法是什么?
What is the scala notation written as _:type?
我正在学习 Scala 教程。
在函数字面量中,它有如下表示法:
(_ : *type*) => println("pressed")
例如,
(_ : Int) => println("pressed")
在这个符号中,我无法理解 (_ : type) 的意思。
这是一个带有忽略参数的匿名函数。
在 Scala 中,约定是在不使用参数时使用下划线。
您可以像这样重写完全相同的内容:
(unused: Int) => println("pressed")
至于为什么有人要这样做;通常你需要安抚 Scala 的类型推断。所以如果你只写
_ => println("pressed")
那么 Scala 将无法推断输入参数的类型。输入
(_: Int) => println("pressed")
确保编译器推断的类型是 Int => Unit
.
我正在学习 Scala 教程。
在函数字面量中,它有如下表示法:
(_ : *type*) => println("pressed")
例如,
(_ : Int) => println("pressed")
在这个符号中,我无法理解 (_ : type) 的意思。
这是一个带有忽略参数的匿名函数。 在 Scala 中,约定是在不使用参数时使用下划线。
您可以像这样重写完全相同的内容:
(unused: Int) => println("pressed")
至于为什么有人要这样做;通常你需要安抚 Scala 的类型推断。所以如果你只写
_ => println("pressed")
那么 Scala 将无法推断输入参数的类型。输入
(_: Int) => println("pressed")
确保编译器推断的类型是 Int => Unit
.