[英]Ruby Syntax for calling methods
我是紅寶石語言的新手,遇到了以下代碼行:
f.options[:chart][:defaultSeriesType] = "bar"
有人可以向我解釋一下嗎? 因為這樣做:
f.options([:chart][:defaultSeriesType]) = "bar"
給你一個錯誤。 提前致謝!
f.options
應該是一個哈希,像這樣
f.options = {:chart => {}}
然后,您首先編寫的命令將起作用。 因此,這不是方法調用,而是實際設置哈希值。
希望這可以幫助。
每當您有這樣的問題時,請打開控制台並使用對象
>f.options.class
=> Hash
>f.options[:chart].class
=> Hash
f.options[:chart]
返回哈希。 因此, f.options[:chart][:defaultSeriesType] = "bar"
哈希值設置為key為'defaultSeriesType',值為'bar'。
並且,對於鍵,使用符號而不是字符串是一種好習慣,因此冒號位於前面- :defaultSeriesType
您正在處理哈希。
當您對f.options.inspect
這樣的f.options.inspect
,它將打印出數據結構的內容。
我將通過一個示例讓您理解:
根據您的編寫方式,似乎您正在以這種方式來處理一個對象,該對象的結構更少:
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
當然有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.