gpt4 book ai didi

scala 否则怎么写

转载 作者:行者123 更新时间:2023-12-03 11:07:57 24 4
gpt4 key购买 nike

我是 Scala 的新学习者,我正在尝试运行此示例代码

 def isLast(c: Int, r: Int):Int ={
if(r == 1)
{
return 1;
}

else if (r == c){
return 1
}
}

但它给了我编译时错误,说
Multiple markers at this line
- type mismatch; found : Unit required: Int
- type mismatch; found : Unit required: Int

请帮助我,并建议我一些学习 Scala 的好网站。

最佳答案

首先,让我们稍微清理一下您的代码:

def isLast(c: Int, r: Int):Int = {
if(r == 1)
return 1
else if (r == c)
return 1
// but what about when r is neither 1 nor c ??
}

所以你告诉 Scala 如果 r是1,则返回1,如果 r == c , 返回 1. 那很好。但是,如果您希望该方法返回一个 Int,则它必须在每种情况下都返回一个。所以 Scala 会提示,因为它不知道当 r 时返回什么 Int既不是 1 也不是 c .

修复方法是添加 else子句比返回一些其他 Int。

作为附加说明,您可以而且应该省略 return关键字,让 Scala 隐式地知道 if-else 表达式的结果,作为函数体中的最后一个表达式,应该返回:
def isLast(c: Int, r: Int):Int = {
if(r == 1)
1
else if (r == c)
1
else
0 // or some other Int
}

最后要注意的是,如果您有一个名称以 is 开头的函数,那么它可能应该返回一个 bool 值。换句话说,如果输入是最后一个,则返回真,否则返回假。

关于scala 否则怎么写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12570005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com