用于调用方法的Ruby语法

时间:2011-08-30 13:50:26

标签: ruby methods

我对ruby语言非常陌生,我遇到了这行代码:

f.options[:chart][:defaultSeriesType] = "bar"  

有人可以向我解释一下吗?因为这样做:

f.options([:chart][:defaultSeriesType]) = "bar"  

给你一个错误。 提前谢谢!

3 个答案:

答案 0 :(得分:3)

f.options应该是哈希,就像这样

f.options = {:chart => {}}

然后你第一次写的命令就可以了。所以它不是方法调用,而是实际设置哈希值。

希望这有帮助。

答案 1 :(得分:1)

每当您遇到这样的问题时,请打开控制台并使用对象

>f.options.class
=> Hash
>f.options[:chart].class
=> Hash

f.options[:chart]正在返回哈希。因此,行f.options[:chart][:defaultSeriesType] = "bar"将哈希值设置为'defaultSeriesType',值为'bar'。

而且,对于键使用符号而不是字符串是一个好习惯,因此前面的冒号 - :defaultSeriesType

答案 2 :(得分:1)

您正在使用哈希处理。
当您怀疑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

当然有帮助