在Ruby中,为什么我需要定义散列,但不要';你不需要定义变量吗?
我是说,我没有申报在Ruby中,为什么我需要定义散列,但不要';你不需要定义变量吗?,ruby,hash,Ruby,Hash,我是说,我没有申报 my_var = new variable 或者类似的。 我只是和你一起去 my_var = 1; 同样,为什么我不能 books["War and peace"] = :masterpiece 为什么我需要提前定义 books = {} 做: 正在定义和分配局部变量。使用散列可以这样做: books = { 'War and Peace' => :masterpiece } books[“War and peace”]=:majorite调用books上的[
my_var = new variable
或者类似的。
我只是和你一起去
my_var = 1;
同样,为什么我不能
books["War and peace"] = :masterpiece
为什么我需要提前定义
books = {}
做:
正在定义和分配局部变量。使用散列可以这样做:
books = { 'War and Peace' => :masterpiece }
books[“War and peace”]=:majorite
调用books
上的[]=
方法,其中“War and peace”
和:majorite
作为其参数。如果books
不存在,则不能对其调用方法
或者用另一种方式来解决这个问题:如果ruby确实做了一些魔术来自动初始化变量,那么当您在变量上使用
[]=
时,ruby怎么知道您希望书籍
在上面的示例中成为散列呢?任何类都可以有[]
和[]=
运算符,它们接受字符串作为索引。因此,请说明,1
是数字文本,{‘战争与和平’=>:杰作}
是散列文本。因此,这里的两个语句具有完全相同的形式,就像name=“John”
和list=[1,2,3,4]
一样。如果您需要创建一个没有内置文本语法的对象类型,例如x=Set.new([1,2,3,4])
,那么它只会变得更复杂。
books = { 'War and Peace' => :masterpiece }