我的意思是,我没有宣布
my_var = new variable
或类似的东西。 我跟你一起去
my_var = 1;
同样,为什么我不能
books["War and peace"] = :masterpiece
为什么我需要提前定义?
books = {}
答案 0 :(得分:8)
books["War and peace"] = :masterpiece
使用[]=
和books
作为参数调用"War and peace"
上的:masterpiece
方法。如果books
不存在,则无法在其上调用方法。
或者以不同的方式处理问题:如果ruby确实做了一些魔术来自动初始化变量,当你对它们使用[]=
时,ruby应该如何知道你希望books
成为哈希在上面的例子中?任何类都可以使用[]
和[]=
运算符来接受字符串作为索引。
答案 1 :(得分:7)
这样做的:
my_var = 1
定义和分配局部变量。使用哈希可以这样做:
books = { 'War and Peace' => :masterpiece }