我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它是一个散列......当然这样的语法它不合法的散列目的。 –