我farily新的Ruby編程語言和我遇到這行代碼來:Ruby的語法調用方法
f.options[:chart][:defaultSeriesType] = "bar"
可能有人請解釋一下,一個給我嗎?因爲這樣做:
f.options([:chart][:defaultSeriesType]) = "bar"
給你一個錯誤。 在此先感謝!
我farily新的Ruby編程語言和我遇到這行代碼來:Ruby的語法調用方法
f.options[:chart][:defaultSeriesType] = "bar"
可能有人請解釋一下,一個給我嗎?因爲這樣做:
f.options([:chart][:defaultSeriesType]) = "bar"
給你一個錯誤。 在此先感謝!
您正在與哈希處理。
當你有這樣的疑問時,它會打印出數據結構的內容。
我讓你用一個例子明白:
從你寫的方式基於,似乎你正在處理以這種方式更加少組織的對象:
f.options = { chart => {defaultSeriesType => "bar"; somethingElse => "bor"}, graph => {attribute1=> "anotherString"} }
所以,你可以查詢對象通過書寫:f.options[:graph][:attribute1]
或f.options[:chart][:somethingElse]
等。
我建議你把錢花在http://www.tryruby.org一分鐘,然後用哈希玩,你也可以到這裏看看:http://www.troubleshooters.com/codecorn/ruby/basictutorial.htm#_Hashes
當然它有助於
f.options
應該是一個散列,像這樣
f.options = {:chart => {}}
那你先寫命令將工作。所以這不是一個方法調用,而是實際設置哈希的值。
希望這會有所幫助。
只要你有這樣的問題,打開控制檯,並與對象
>f.options.class
=> Hash
>f.options[:chart].class
=> Hash
f.options[:chart]
返回一個哈希玩。因此,行f.options[:chart][:defaultSeriesType] = "bar"
正在設置密鑰的值爲'defaultSeriesType',值爲'bar'。
而且,這是一個很好的做法是使用一個符號,而不是字符串鍵,因此在前面的冒號 - :defaultSeriesType
什麼樣的錯誤? – lucapette
語法錯誤,意外的'=',期待關鍵字結束 f.option([:chart] [:defaultSeriesType])=「bar」 – Chris
這是因爲f.options它是一個散列......當然這樣的語法它不合法的散列目的。 –