在Ruby中,标准约定是在方法名称的末尾使用问号来指示该方法返回一个布尔结果:
[].empty? #=> true
Run Code Online (Sandbox Code Playgroud)
另一个标准约定是如果方法具有破坏性(即,它修改原始数据),则使用感叹号结束方法名称:
mylist.sort! # sort mylist in-place
Run Code Online (Sandbox Code Playgroud)
最近我看到了Scheme中使用的这些约定.这让我想知道,其他语言使用/支持这个约定?是否有其他特殊字符通常用于这些或其他语言的命名?
programming-languages naming-conventions special-characters method-names
我认为感叹号!是逻辑NOT运算符的符号。现在,在学习DataFrames包中的索引时,我遇到了这个:data[!,:Treatment]. 这似乎与使用已知的冒号符号相同:
data[:,:Treatment]==data[!,:Treatment]是true。
为什么会有这种冗余呢?