Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby Struct.new不';I don’我没想到会这样,它需要额外的_Ruby On Rails_Ruby_Struct - Fatal编程技术网

Ruby on rails Ruby Struct.new不';I don’我没想到会这样,它需要额外的

Ruby on rails Ruby Struct.new不';I don’我没想到会这样,它需要额外的,ruby-on-rails,ruby,struct,Ruby On Rails,Ruby,Struct,我正在做一个项目,我发现了一个有趣的问题。我想使用Struct。我试着这样使用它: > e = Struct.new(:message, :whateve) => #<Class:0x007f881dd98b98> e.message = "something" NoMethodError: undefined method `message=' for #<Class:0x007f881dd98b98> from (pry):5:in `__pry__'

我正在做一个项目,我发现了一个有趣的问题。我想使用
Struct
。我试着这样使用它:

> e = Struct.new(:message, :whateve)
=> #<Class:0x007f881dd98b98>
e.message = "something"
NoMethodError: undefined method `message=' for #<Class:0x007f881dd98b98>
from (pry):5:in `__pry__'
>e=Struct.new(:message,:whateve)
=> #
e、 message=“某物”
NoMethodError:未定义的方法“message=”用于#
from(pry):5:in`\uuu pry\uuu'

如果我这样添加它,它可以正常工作:
e=Struct.new(:message,:whateve).new
所以我想知道问题出在哪里,需要额外的新功能吗?我使用的是ruby 2.2.1p85。

这是因为
Struct.new(:message,:whateve)
刚刚定义了一个新类:

e = Struct.new(:message, :whateve) # define new class
e.class
#=> Class
e.new #define this class instance
#=> #<struct message=nil, whateve=nil>
e=Struct.new(:message,:whateve)#定义新类
e、 阶级
#=>类
e、 新建#定义此类实例
#=> #

之所以发生这种情况,是因为
Struct.new(:message,:whateve)
只定义了一个新类:

e = Struct.new(:message, :whateve) # define new class
e.class
#=> Class
e.new #define this class instance
#=> #<struct message=nil, whateve=nil>
e=Struct.new(:message,:whateve)#定义新类
e、 阶级
#=>类
e、 新建#定义此类实例
#=> #

定义结构类型(
MyStruct=struct.new
)与初始化它的实例(
myu-struct\u-obj=MyStruct.new
)不同。定义结构类型(
MyStruct=struct.new
)与初始化它的实例(
myu-struct\u-obj=MyStruct.new
)不同。谢谢。是的,我的错,我尝试使用Struct作为对象,而不是创建对象的结构。谢谢。是的,我的缺点是,我试图使用Struct作为对象,而不是创建对象的结构。