gpt4 book ai didi

ruby-on-rails - 同名函数有什么作用?

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:02 25 4
gpt4 key购买 nike

我正在学习 ruby​​,但终其一生都无法理解它的作用:

def topic_list
topics.map(&:name).join(",")
end

def topic_list=(names)
if names.present?
topics = names.split(",")
self.topics = topics.map do |n|
unless topic = Topic.find_by(slug: n)
topic = Topic.create!(name: n)
end
topic
end
end
end

为什么两个函数会有相同的名字?第一个函数调用第二个函数吗?

最佳答案

topic_list 是一个 gettertopic_list= 是一个 setter 方法。不,它们不是相同的方法。

这个问题Trying to learn / understand Ruby setter and getter methods将有助于作为这个概念的基本食物。所以请阅读。

方法topic_list=中的self.topics = topics.map...行,和topics.map(&:name).join( ",") 方法 topic_list 中的一行闻起来有一个名为 topics 的 getter 和 setter topics=。通过查看您的代码,我确信(如果您告诉此代码可以正常工作)。

关于ruby-on-rails - 同名函数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425580/

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