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
def f=x:Int->;有什么问题;Scala中的列表(x-1,x,x+;1)?_Scala_Syntax - Fatal编程技术网

def f=x:Int->;有什么问题;Scala中的列表(x-1,x,x+;1)?

def f=x:Int->;有什么问题;Scala中的列表(x-1,x,x+;1)?,scala,syntax,Scala,Syntax,嗨,我不太明白为什么Scala中的这个定义不起作用 scala> def f=x:Int->List(x-1,x,x+1) <console>:1: error: ';' expected but '(' found. def f=x:Int->List(x-1,x,x+1) ^ scala>def=x:Int->List(x-1,x,x+1) :1:错误:';'应为,但找到了“(”。 def f=x:

嗨,我不太明白为什么Scala中的这个定义不起作用

scala> def f=x:Int->List(x-1,x,x+1)
<console>:1: error: ';' expected but '(' found.
       def f=x:Int->List(x-1,x,x+1)
                        ^
scala>def=x:Int->List(x-1,x,x+1)
:1:错误:';'应为,但找到了“(”。
def f=x:Int->List(x-1,x,x+1)
^

语法不正确:我想你想要的是:

def f(x: Int):List[Int] = List(x-1,x,x+1)

首先,函数类型是用
=>
定义的,而不是
->
,可能您来自
haskell
,因此,例如,具有
Int
参数且返回
List[Int]
的函数将具有语法错误的
Int=>List[Int]
类型:我认为您想要的是:

def f(x: Int):List[Int] = List(x-1,x,x+1)

首先,函数类型是用
=>
定义的,而不是
->
,可能您来自
haskell
,因此,例如,具有
Int
param且返回
List[Int]
的函数将具有类型
Int=>List[Int]
存在两个直接的问题:

  • ->
    应该是
    =>
  • x:Int
    应该是
    (x:Int)
  • 所以这是可行的:

    def f = (x: Int) => List(x - 1, x, x + 1)
    
    然而,这是定义一个返回函数的函数,这可能不是我们想要的

    val f = (x: Int) => List(x - 1, x, x + 1)
    


    有两个紧迫的问题:

  • ->
    应该是
    =>
  • x:Int
    应该是
    (x:Int)
  • 所以这是可行的:

    def f = (x: Int) => List(x - 1, x, x + 1)
    
    然而,这是定义一个返回函数的函数,这可能不是我们想要的

    val f = (x: Int) => List(x - 1, x, x + 1)