我是斯卡拉初學者。我無法理解下面的斯卡拉表達:斯卡拉 - 無法弄清楚這個表達式評估
x = if(true) x+1 else x-1
那麼x的初始值是3,執行它成爲上述表達式後4
我無法理解if(true)
,什麼是它實際上評估?
我是斯卡拉初學者。我無法理解下面的斯卡拉表達:斯卡拉 - 無法弄清楚這個表達式評估
x = if(true) x+1 else x-1
那麼x的初始值是3,執行它成爲上述表達式後4
我無法理解if(true)
,什麼是它實際上評估?
if(true) x else y
將始終執行if分支,因爲條件是true
。因此,你的if表達式的結果總是爲x + 1
。
嗨直到,感謝你的回覆,這是如何成爲真實的? ,檢查是否已經定義了'x'或是否存在'x' –
@ user3211648中的任何值,if分支的計算條件是布爾文字「真」的括號內的表達式。布爾文字「true」被評估爲true,因此if分支被執行。這與'x'的值無關。 –
謝謝直到..這是有幫助的:) –
隨着對@TillRohrmann的點頭,對於我們Scala新手來說,事情有時候不像對待經驗豐富的程序員那樣清晰。這是我的詳細嘗試,不僅僅是爲了你,而是爲了將來可能有類似問題的其他人。
x = if (true) x+1 else x-1
認爲你的表達作爲
x = function_if (argument=true) {
if (argument = true){
return x+1
}else{
return x-1
}
}
由於參數總是true
,答案永遠是x+1
。 希望這有助於!
謝謝你的詳細解釋:) –
@learningKid太棒了!祝你好運! – Prashant
從某種意義上說,該聲明並不「評估」任何東西。 '如果()'評估是否爲真或假。 'true'總是如此,所以'if(true)'永遠不會轉移到'else'語句。 –
jwvh
這是一個非常奇怪的說法。首先,它沒有做任何有用的事情; 'true'永遠是真的。其次,這個重新賦值'x'的意思是'x'必須是'var',這有時可以,但很少。你從哪裏看到這個聲明? – Martijn
@Martijn ..謝謝..其中一個教程:)導師沒有完全解釋這個表達式(也許我無法正確掌握它) –