2012-06-15 2 views
0

1)왜 변수 == "거짓"이 잘 작동하지 않습니까?

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

출력 : 거짓 거짓 진정한

2)

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

빈 출력

3)

0

출력 : 거짓 거짓 사실

그렇게 이상한 작동 왜, 이해하지 못하는 당신이 나에게 설명 할 수 있습니까?

PS : 내 작업 변종이다

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

출력 : 거짓 거짓

+0

나는이 질문에서 ** 당신이 묻고있는 것에 대해 아무 생각이 없다고 생각합니다. –

+1

질문에 더 나은 제목을주십시오. –

답변

6

나는 문제는 당신이 avatar['deleted'] 문자열 (단어 "거짓"또는 단어를 반환 생각 "사실 생각 "), 정말로 부울을 반환합니다. false이 문자열이 아닌 것을

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

참고하지만, 키워드 :

이 코드를 사용해보십시오이 부울 플래그입니다. 이제 첫 번째 시나리오와 더 잘 일치하는 결과를 얻어야합니다.

+0

ok, thax, ruby는 좋은 언어이지만 때로는 매우 이상해 =) – alterpub

+0

문제가 없습니다! 이것을 다른 사람이 당신을 위해 일한 것을 알 수 있도록 대답으로 표시하십시오! – MrDanA

+1

@alterpub, 거의 모든 언어가 이와 같이 작동합니다. 이것은 전혀 이상하지 않습니다. – Mischa

관련 문제