活跃记录中@的基本问题区别

rah*_*rdi 0 ruby

我有一个基本的问题,我无法从ruby中理解.如果在活跃的记录中,我有"@food",它与"食物"有什么不同.我认为它是一个数组,但不是主动记录可以假定为数据列表(数组?)

谢谢你的分享

edg*_*ner 5

这与ActiveRecord无关.它只是简单的Ruby语法.

@foo表示实例变量.它的范围限定为其类的实例,并且对于类的每个实例都是不同的.只要保留类实例,就会保留内容.

foo可以表示局部变量,该变量仅在当前块范围内有效.一旦块退出,它就会超出范围,并且除非在别处引用,否则将丢弃内容.

@ notation与数组或任何其他数据类型无关.在Ruby中,变量没有数据类型.@bar将毫无怨言地接受字符串,整数或数组.所以会bar.