1
爲什麼此方法只接受符號而不接受字符串作爲參數?爲什麼respond_to?在Ruby中需要符號作爲參數?
x = 10
x.respond_to?(next)
推一個像上面這樣的字符串會拋出(ruby):1: void value expression
。
爲什麼此方法只接受符號而不接受字符串作爲參數?爲什麼respond_to?在Ruby中需要符號作爲參數?
x = 10
x.respond_to?(next)
推一個像上面這樣的字符串會拋出(ruby):1: void value expression
。
它接受的字符串:
x = 10
x.respond_to?('next')
# => true
你的問題是,你沒有通過字符串,但next
關鍵字。
紅寶石respond_to? DOC:
respond_to?(symbol, include_all=false) → true or false
respond_to?(string, include_all=false) → true or false
它同時接受,符號和字符串。如果傳遞的字符串被轉換爲符號。
正如Marek所提到的,您沒有傳遞字符串,也沒有傳遞符號,並且在內置關鍵字中出現語法錯誤。
那它可以互換嗎? – therewillbecoffee
''next''字符串和':next'符號?是的,在這方面。 –
另一個問題,單引號是否可以用雙引號互換?在Java中,它們只用於char。 – therewillbecoffee