我寫了下面的簡單代碼:錯誤:';'預期,但「其他」發現
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)
}
雖然它似乎是正確的我,有錯誤。上面的代碼有什麼問題?
我寫了下面的簡單代碼:錯誤:';'預期,但「其他」發現
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)
}
雖然它似乎是正確的我,有錯誤。上面的代碼有什麼問題?
試試這個:
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);
}
它給了我一個不同的錯誤:遞歸方法逗號需要結果類型 – user2206758 2013-03-25 08:59:58
@ user2206758好,然後給它一個類型。 'def Commas(n:Long):Unit = ...' – folone 2013-03-25 09:09:22
或者試試這個:
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)
}
它給了我同樣的錯誤... – user2206758 2013-03-25 08:57:14
-1:錯誤的答案;在一行中添加幾個表達式不會產生單個表達式。 – sschaef 2013-03-25 11:50:26
尷尬:-( – nilo 2013-03-27 10:50:30
雖然,你已經有了如何解決兩種解決方案,這裏就是爲什麼它不工作,你指望它:在斯卡拉Conditional expressions預計expressions在他們的if
和else
塊。有幾種方法可以將幾個表達式(比如你在那裏)組合成一個複合表達式(你可以在你的問題的其他答案中看到這些表達式的例子)。
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)
}
謝謝你!它完美的作品! – user2206758 2013-03-25 09:45:01
免責聲明:本解決方案是類似的錯誤,但不一樣的情況。
我面臨同樣的錯誤。我做的錯誤是,我複製粘貼命令提示符代碼到文件,並忘記刪除該函數行中的管道(|)字符,並得到相同的錯誤。如果你因爲這個原因來到這個頁面,現在你可以修復它。請享用。
不要忘記upvote /接受有益的答案。 – sschaef 2013-03-25 11:52:23