gpt4 book ai didi

ruby - 为什么变量名不能以 `?` 结尾,而方法名可以?

转载 作者:数据小太阳 更新时间:2023-10-29 06:21:01 24 4
gpt4 key购买 nike

方法名可以以问号结尾 ?

def has_completed?
return count > 10
end

但变量名不能。

这是什么原因呢?让变量名也以同样的方式结尾不是很方便吗?鉴于我们通常无法仅通过查看名称 foobar 来判断 foobar 是方法还是变量,为什么 会出现异常?案例?

我应该如何处理它?也许总是在代码中使用 hasis

if process_has_completed
...
end

if user_is_using_console
...
end

最佳答案

您必须询问 Matz 才能获得权威答案。然而,

  • Ruby 是一种无类型的编程语言,像 finished? 这样的变量将暗示一种特定类型( bool 值),这对我来说似乎有些矛盾。
  • 问题在某种程度上需要接受者(可以回答问题的人)。一个方法必须有一个接收者(方法被调用的对象),所以问号是有意义的。另一方面,变量没有接收者,它只是一个容器。

关于ruby - 为什么变量名不能以 `?` 结尾,而方法名可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5448938/

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