ruby - 我试过用常量参数名称在 ruby 中定义一个函数,为什么会抛出错误?
问题描述
每当我尝试做def foo(CONST1, CONST2)
...时,它总是会出错,即使只有函数名是常量。
# Error!
def foo (BAR, BAZ)
puts BAR + BAZ
end
解决方案
Ruby 是一种异常区分大小写的语言,因此您不能做某些事情,因为大写字母具有语法意义。其他语言不关心,但 Ruby 关心。
例如,您的方法参数必须是变量。您不能在此处定义常量。开头的大写字母表示常数,没有例外。
您应该将其定义为:
def foo(const1, const2)
# ..
end
一些规则:
- 方法名称、变量和参数是
lower_case
. - 类和模块分别遵循
ClassName
和ModuleName
。这些是技术常数。 - 其他常量定义为
CONSTANT_NAME
我不确定你想通过定义“常量参数名称”来实现什么,所以如果你能解释一下,也许这里有更好的答案。
推荐阅读
- firebase - Firestore 是否在每次构建页面时执行读取?
- python - 这条鳕鱼是真的,但在这个网站('hepsiburada.com')中返回 403。我该如何解决这个问题?
- c# - 带有表达式的通用存储库“查找”方法
- python - 为我托管在 herokou 上时,client.fetch_user() 不起作用
- algorithm - Scala如何为Rationals定义排序
- elasticsearch - Elasticsearch:如何使用 Java api 添加嵌套数据类型?
- javascript - 如何使用动态密钥创建 TS 接口?
- javascript - 未捕获的类型错误:无法读取 null 的属性“集合”
- kubernetes - istio 1.5.1 - 如何将 SameSite 属性添加到所有 cookie
- javascript - 对数组进行排序并在 MongoDB 中添加排名字段