我写了以下简单的代码:
def Commas(n: Long) = {
if (n >= 1000)
Commas(n/1000)
print(","+ n%1000/100 + n%100/10 + n%10)
else
print(n%1000/100 + n%100/10 + n%10)
}
虽然对我来说似乎是对的,但是有一个错误。上面的代码出了什么问题?
答案 0 :(得分:5)
If...else...
语法需要一个语句。您可以使用周围的代码块来确保代码按预期工作。类似的东西(还要注意你必须指定返回类型为Unit
或只删除=
标志):
def Commas(n: Long) {
if (n >= 1000) {
Commas(n/1000)
print(","+ n%1000/100 + n%100/10 + n%10)
}
else
print(n%1000/100 + n%100/10 + n%10)
}
答案 1 :(得分:1)
试试这个:
def Commas(n: Long) = {
if (n >= 1000) {
Commas(n/1000)
print(","+ n%1000/100 + n%100/10 + n%10);
}
else {
print(n%1000/100 + n%100/10 + n%10);
}
答案 2 :(得分:0)
虽然,你有两个关于如何修复它的解决方案,但这就是为什么它没有像你期望的那样工作:Conditional expressions在scala期望expressions的if
和else
阻止。有几种方法可以将几个表达式(就像你有的那样)组合成一个复合表达式(你可以在其他问题的答案中看到这些表达式的例子)。
答案 3 :(得分:0)
免责声明:此解决方案适用于类似错误,但情况不同。
我遇到了同样的错误。我做的错误是,我复制粘贴命令提示符代码到文件,忘记删除函数行中的管道(|)字符,并得到相同的错误。如果你因为这个原因来到这个页面,现在你可以解决它。享受。
答案 4 :(得分:-1)
或试试这个:
def Commas(n: Long) = {
if (n >= 1000)
Commas(n/1000); print(","+ n%1000/100 + n%100/10 + n%10)
else
print(n%1000/100 + n%100/10 + n%10)
}