gpt4 book ai didi

ruby - def inside def 或如何做

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:28 27 4
gpt4 key购买 nike

我想做这样的事情:

class Result<<ActiveRecord::Base

def condensation
#some code here that calculates @winner and @looser and @condresalut
def winner
@winner
end

def looser
@looser
end

def showresault
@condresalut
end
end

end

这样我就可以调用 res.condensation.winnerres.condensation.looserres.condensation.showresault

最好的方法是什么?显然这种方式行不通,我得到了 nils。

最佳答案

确实可以这样做。不确定意图是什么,因为有人问过这个问题,但不确定这个问题是否得到了澄清。

但是 Jay Fields 有一个 well visited blog entry显示了如何在方法内部定义方法。

class Class
def def_each(*method_names, &block)
method_names.each do |method_name|
define_method method_name do
instance_exec method_name, &block
end
end
end
end

尽管使用 attr_reader 技术可能会更好地服务于您的定义中的方法本身。

就调用嵌套定义的方法而言:

def testing
def testing2
'it worked'
end
end

puts testing::testing2

作为 Alex D在评论中提醒我,范围运算符是一种欺骗。

关于ruby - def inside def 或如何做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com