2012-06-15 70 views
0

1)爲什麼變量==「false」不能正常工作?

- @client.getAvatars(@accountName).each do |avatar| 
    =avatar['deleted'] 

輸出: 假 假 真

2)

- @client.getAvatars(@accountName).each do |avatar| 
- if(avatar['deleted'] == 'false') 
    =avatar['deleted'] 

空輸出

3)

- @client.getAvatars(@accountName).each do |avatar| 
- if(avatar['deleted'] != 'false') 
    =avatar['deleted'] 

輸出: 假 假 真正

我不明白爲什麼這麼奇怪,你可以把它解釋一下嗎?

PS:我的工作變型

- @client.getAvatars(@accountName).each do |avatar| 
- if(!avatar['deleted']) 
    =avatar['deleted'] 

輸出: 假 假

+0

我不認爲任何人有任何關於**你在這個問題上問什麼**的想法。 –

+1

請給你的問題一個更好的標題。 –

回答

6

我認爲這個問題是您認爲avatar['deleted']返回一個字符串(單詞「假」或單詞「真「),當真的是返回一個布爾值。

試試這個代碼:

- @client.getAvatars(@accountName).each do |avatar| 
    - if(avatar['deleted'] == false) # or, if(avatar['deleted']) 
     =avatar['deleted'] 

注意false不是字符串,但關鍵字:這是一個布爾標誌。現在你應該得到與你的第一個場景更吻合的輸出。

+0

好的,thax,紅寶石是很好的語言,但有時它很奇怪=) – alterpub

+0

沒問題!一定要將此標記爲答案,以便其他人知道您的工作方式! – MrDanA

+1

@alterpub,幾乎所有的語言都是這樣工作的。這並不奇怪。 – Mischa