我正在尝试学习Rails和我下载的其中一个文件,我可以看到:
注意:此文件位于模型下。
def initialize slug
api_call "http://yourwebsiteurl.com/REST/" + slug.to_s
end
这是什么意思?它是否像Java中的构造函数?
优素福
答案 0 :(得分:2)
正如评论中所回答的那样,initiailze
方法是Ruby的新对象构造方法。也就是说,当您在某个对象上调用new
时,它会转过来并调用initialize
。
但是,既然你是Ruby的新手,我还想指出代码的风格问题。写这个方法的惯用Ruby方法是:
def initialize(slug)
api_call "http://yourwebsiteurl.com/REST/#{slug}"
end
差异在于:
"#{}"
)进行字符串插值(+
)以插入变量,因为它更容易且性能更高虽然这些有点武断,但它们仍然被广泛接受。请参阅GitHub Ruby Style Guide。