我只是想知道它有什麼應用程序。我相信1.9的前綴?會返回該字符的字符串版本。前綴的含義是什麼? Ruby 1.9中的運算符
?a #=> "a"
?\t #=> "\t"
這只是'a'或'\ t'的縮寫嗎?
我只是想知道它有什麼應用程序。我相信1.9的前綴?會返回該字符的字符串版本。前綴的含義是什麼? Ruby 1.9中的運算符
?a #=> "a"
?\t #=> "\t"
這只是'a'或'\ t'的縮寫嗎?
這主要是爲了向後兼容。在1.9之前的版本中,?
評估爲Fixnum
,對應於所討論字符的ASCII值。索引到String
也返回Fixnum
。
所以,如果你想檢查,例如,如果一個字符串的第三個字符是字母「A」,你會做
s[2] == ?a
在Ruby 1.9中,字符串不再被看作一個數組的fixnums而是作爲字符的迭代器(實際上是單字符字符串)。結果,上面的代碼將不再起作用:s[2]
將是一個字符串,?a
將是一個數字,而這兩個將永遠不會相等。
因此,?
也被更改爲一個單字符字符串,以便上面的代碼繼續工作。
你是對的,你得到字符的字符串值。它以前用於獲取字符的ASCII值。
紅寶石1.8和早期
?a
將返回 'A' 字符的ASCII版本。
在1.9它只返回字符串(就像你已經假定)