Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala:';def foo={1}';vs';def foo{1}';_Scala_Methods - Fatal编程技术网

scala:';def foo={1}';vs';def foo{1}';

scala:';def foo={1}';vs';def foo{1}';,scala,methods,Scala,Methods,在定义foo的每种形式中都发生了什么 scala> def foo = {1} foo: Int scala> foo res2: Int = 1 但是: 在以下内容中找到: 另见下文: 在Scala中,如果方法声明的正文前没有等号,编译器将推断结果类型为Unit 基本上,声明一个没有=的函数意味着该函数返回单元,编译器在最后为您插入一个()。应该返回非单位值的函数必须用=符号声明(当然编译器可以从表达式的类型推断返回类型)。相关: scala> def foo {1} f

在定义foo的每种形式中都发生了什么

scala> def foo = {1}
foo: Int

scala> foo
res2: Int = 1
但是:

在以下内容中找到:

另见下文:

在Scala中,如果方法声明的正文前没有等号,编译器将推断结果类型为
Unit

基本上,声明一个没有
=
的函数意味着该函数返回
单元
,编译器在最后为您插入一个
()
。应该返回非
单位
的函数必须用
=
符号声明(当然编译器可以从表达式的类型推断返回类型)。

相关:
scala> def foo {1}
foo: Unit

scala> foo

scala>
//[bad!] 
def f(x: Int) { x*x } //hidden error: without = it's a Unit-returning proc; causes havoc