Ruby中问号运算符的目的是什么?
有时它看起来像这样:
assert !product.valid?
有时它在一个if结构中.
chi*_*tom 275
这是一种代码风格的约定; 它表示方法返回一个布尔值.
问号是方法名称末尾的有效字符.
小智 79
还要注意?一个字符,将返回ASCII字符代码A
例如:
?F # => will return 70
或者在ruby 1.8中你可以这样做:
"F"[0]
或者在红宝石1.9中:
"F".ord
另请注意,?F将返回字符串"F",因此为了使代码更短,您还可以?F.ord在Ruby 1.9中使用以获得相同的结果"F".ord.
And*_*ell 25
在您的示例中,它只是方法名称的一部分.在Ruby中,您还可以在方法名称中使用感叹号!
Ruby中问号的另一个例子是三元运算符.
customerName == "Fred" ? "Hello Fred" : "Who are you?"
Tim*_*sch 15
在你的例子中
product.valid?
实际上是一个函数调用并调用一个名为的函数valid?.某些类型的"条件测试"/布尔函数按惯例将问号作为函数名称的一部分.
Ric*_*ith 13
值得指出的是,只允许在方法名称中使用?s,而不是变量.在学习Ruby的过程中,我假设了?指定一个布尔返回类型,所以我尝试将它们添加到标志变量,导致错误.这导致我错误地相信有一些特殊的语法涉及?s.
| 归档时间: | 
 | 
| 查看次数: | 91972 次 | 
| 最近记录: |