Tag: 自我

如何在像instance_eval方法的块中更改self?

instance_eval方法在其块中更改self,例如: class D; end d = D.new d.instance_eval do puts self # print something like #, not ‘main’! end 如果我们定义一个方法selfelf(或任何其他方法(除了instance_eval)接受一个块),当print self时,我们将获得’main’,这与instance_eval方法不同.eg: [1].each do |e| puts self # print ‘main’ end 如何定义像instance_eval这样的方法(采用块)? 提前致谢。

Rails模型中self的价值是什么?为什么没有明显的实例方法可用?

我的rails 3.1.6应用程序中有一个自定义访问器方法,它为属性赋值,即使该值不存在.my_attr属性是一个序列化的哈希值,除非指定了空值,否则应与给定值合并,在这种情况下,它会将当前值设置为空值。 (增加了检查以确保值是它们应该是什么,但为了简洁而删除,因为它们不是我的问题的一部分。)我的setter定义为: def my_attr=(new_val) cur_val = read_attribute(:my_attr) #store current value #make sure we are working with a hash, and reset value if a blank value is given write_attribute(:my_attr, {}) if (new_val.nil? || new_val.blank? || cur_val.blank?) #merge value with new if cur_val.blank? write_attribute(:my_attr, new_val) else write_attribute(:my_attr,cur_val.deep_merge(new_val)) end read_attribute(:my_attr) end 这段代码按原样运行,但是当我使用self.write_attribute()时则不行。 然后我收到以下错误: NoMethodError: private method `write_attribute’ […]

为什么Array#每个都返回一个具有相同元素的数组?

我正在学习each如何在ruby中工作的细节,我尝试了以下代码行: p [1,2,3,4,5].each { |element| el } 结果是一个数组 [1,2,3,4,5] 但我不认为我完全理解为什么。 为什么each相同数组的返回值? 难道每个都不提供迭代方法吗? 或者, each方法返回原始值只是通常的做法?

Ruby自己的关键字

我无法理解self关键字。 我了解它是如何用来区分实例方法和类方法的,但是从方法内部使用它的时候呢。 就像是 def self.name self.name = “TEXT” end 要么 def name2 self.name = “TEXT2” end 要么 class Array def iterate!(&code) self.each_with_index do |n, i| self[i] = code.call(n) end end end

Ruby中的自我意味着什么?

rubyself代表什么? 它是什么? 这是什么意思? 有人可以向我解释一下吗? 简单来说,请问它在课堂上的function是什么? class MyClass def method.self end end

Ruby:如何编写一个bang方法,比如map?

我想编写一些改变调用对象的新Array方法,如下所示: a = [1,2,3,4] a.map!{|e| e+1} a = [2,3,4,5] ……但是我知道如何做到这一点。 我想我需要一个新的大脑。 所以,我想要这样的事情: class Array def stuff! # change the calling object in some way end end 地图! 只是一个例子,我想写一个完全新鲜的,而不使用任何预先存在的! 方法。 谢谢!

在Ruby中,什么时候应该使用self。 在你的课程?

你self.property_name在Ruby中使用self.property_name ?

(Ruby,Rails)SELF在模块和库中的上下文……?

关于在模块或库中使用“SELF”的快速问题。 基本上什么是“SELF”的范围/上下文,因为它与模块或库有关,如何正确使用? 有关我正在讨论的示例,请查看安装了“restful_authentication”的“AuthenticatedSystem”模块。 注意:我知道’self’在其他语言中等同于’this’以及’self’如何在类/对象上操作,但是在模块/库的上下文中没有“自我”。 那么,在没有类的模块中,自我的上下文是什么?

Ruby的自我定义

我正在阅读一本Ruby书,并且遇到了伪变量self的定义: 当前方法的自我接收对象 有人可以打破这个定义并解释它的含义吗? 我不明白任何一个。 编辑:我实际上非常清楚自己是什么(及其应用程序),我知道如何在Google上搜索。 我只是想知道是否有人可以解释我引用的定义。 具体而言。