Scala REPL中"f[]"含义咨询:函数定义输出的f[]疑问
关于Scala Worksheet中
f[]的含义解释 嗨,我来帮你弄明白这个看起来有点奇怪的f[]是什么意思~
首先要明确:这个f[]不是Scala语言本身的语法,它是IntelliJ IDEA的Scala Worksheet(那个模拟REPL的交互式环境)特有的显示格式,用来辅助展示函数的结构。
具体来说:
- 方括号
[]在这里是泛型类型参数的占位符。你的函数def f(x:Int):String="hello"并没有定义任何泛型类型参数(比如像def f[T](x: T): String = "hello"这种带泛型的函数),所以Worksheet就用空的[]来表示——意思是这个函数的结构是支持泛型参数的,但当前没有使用任何泛型参数。 - 举个对比例子,如果你定义一个带泛型的函数:
那Worksheet的输出就会变成def f[T](x: T): String = s"hello, $x"f: f[T](val x: T) => String,这里的[T]就是实际的泛型类型参数了。 - 而如果是在标准的Scala命令行REPL里定义你的原函数,输出会是
f: (Int) => String,不会有这个空方括号——这也能侧面说明f[]是IntelliJ Worksheet的专属显示方式。
简单总结:它就是IntelliJ用来提示你这个函数可以添加泛型参数,但目前没有使用的一个可视化标记而已,不用把它当成Scala的语法元素来理解~
内容的提问来源于stack exchange,提问作者zell
相关产品推荐
相关产品推荐

