2012-11-21 150 views
-1

這裏是我的代碼:紅寶石,「==」不工作

@cmd == "exit" 

時@cmd是一個字符串變量「退出」它不返回true。任何建議爲什麼?

CNC中

分辨

錯誤:因爲@cmd通過使用 '@cmd =獲取' 使它加入 '\ n' 用來@cmd。謝謝你的幫助!

+3

'@ cmd'不會在這種情況下退出。 – sawa

+1

Chomp chomp chomp也許? [(如何在Ruby中進行字符串比較?)](http://stackoverflow.com/questions/2016169/how-do-i-do-string-comparison-in-ruby)。 –

+0

向我們展示更多代碼。 – Intentss

回答

4

@cmd 必須含有比其他出口的東西。 @ cmd是否可能包含某種空行字符,如換行符或空格?也許嘗試:

@cmd.chomp! 
@cmd.strip! 
@cmd == "exit" 

如果從$ stdin.readline設置@cmd,那麼它可能會有換行符。剝離和跺腳將有助於消除不確定性。

+1

它工作的感謝! – learningcoder

+1

@learningcoder看起來你是新來的,所以我想指出,如果有人回答你的問題,點擊問題左側的複選標記(在分數下)表示這個答案很有禮貌回答你的問題。 –

1

看看到底@cmd是什麼:

p @cmd 

或嘗試:

@cmd.to_s == "exit" 
+0

:O感謝我剛剛意識到「@cmd」在最後有\ n。我使用獲取「@cmd」並將其添加\ n到最後。關於如何刪除\ n的任何想法。 – learningcoder

+0

簡單地說:'@ cmd.strip!' – 2012-11-21 20:14:33

+0

@learningcoder請參閱凱爾伯頓的答案。 '@ cmd.chomp!'應該去掉尾隨的空格。 –