gpt4 book ai didi

ruby - 这两个 ruby​​ 函数有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:11 26 4
gpt4 key购买 nike

从 ruby​​ shell 调用函数 GetTitle 时抛出错误 “未初始化的常量 GetTitle”

虽然 full_title 工作正常。

GetTitle 有什么问题?

def GetTitle(pageTitle = '')
baseTitle = "Base Title"
if pageTitle.empty?
baseTitle
else
pageTitle + " | " + baseTitle
end
end

def full_title(page_title = '')
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
page_title + " | " + base_title
end
end

最佳答案

在 Ruby 中,按照惯例,常量以大写字母开头。因此,当您调用 GetTitle 时,它被视为一个常量,您会收到相应的错误(因为没有这样的常量)。但是,如果您使用参数调用它,它将起作用。这是因为参数的存在 Ruby 将其解释为一种方法。这里:

GetTitle
# NameError: uninitialized constant GetTitle
GetTitle('abc')
#=> "abc | Base Title"

你也可以通过使用空括号让 Ruby 相信它是一个方法:

GetTitle()
#=> "Base Title"

This answer explains it beautifully .

关于ruby - 这两个 ruby​​ 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33318950/

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