[無用] Crystal變數可以用!結尾

作者: AIGecko (師大貓耳控)   2017-09-25 20:43:15
以下這單行的判斷式恆執行
puts "non-zero" if val!=0
因為後面會被解讀為 val! = 0
不知為何Crystal偏偏可以允許 ! 結尾的合法變數命名
又因 0 值非 false 或 nil 故成立
無用點在於 coding style是讓 != 的兩端都要加上空白
實際上應該寫成以下寫法
puts "non-zero" if val != 0
而這樣寫該判斷式就不一定會成立(要看val之值)
大概是這樣 很無用
作者: Neisseria (Neisseria)   2017-09-26 04:37:00
感謝分享,看起來好像是 parser 沒寫好的 bug XD
作者: dododavid006 (朔雪)   2017-09-26 13:36:00
可能是因為原本 ruby 的 method 名稱就允許 ! 了吧
作者: AIGecko (師大貓耳控)   2017-09-27 16:54:00
但是變數是不允許的 只有方法可以

Links booklink

Contact Us: admin [ a t ] ucptt.com