我在Rails應用程序中寫了一個jsonify視圖。我有:爲什麼在這個ruby方法調用中空間顯着?
json.samba_secrets_present(not @idp_ad_info.samba_secrets.nil?)
產生一個語法錯誤:
app/views/idp_ad_infos/show.jsonify:7: syntax error, unexpected tIVAR, expecting '('
然而,
json.samba_secrets_present (not @idp_ad_info.samba_secrets.nil?)
工作正常。我原本以爲第一個將是Jsonify::Builder
對象上的方法調用samba_secrets_present
方法,第一個參數爲not idp_ad_info.samba_secrets.nil?
。爲什麼這個空間很重要?
也許這是舊'not'運算符錯誤,例如'puts(not true)'失敗,但'puts((不是true))'工作正常。我忘記了這一點。 (或不是一個錯誤,如答案中所示,但解析的東西?) –
完全不相關,但是''不是''超過'!'的用法是什麼?另一個SO回答說,'!'具有最高的優先級,'不'具有最低的優先級之一......但我仍然試圖找到一個使用'not'的理由。我寧願使用圓括號來強制所需的操作順序。 –