2015-01-26 61 views
2

我不明白在?x.succ。它是什麼?什麼是? in?char

(本問題是在代碼高爾夫球提示由this answer。)

+0

上下文很重要。通常,您只需執行「x」或類似的操作以獲得清晰度。 ''x'只是一個「高爾夫」的方式來寫「x」 – Brennan 2015-01-26 19:58:01

+0

@Brennan是的,?x是一個小於「x」的字符,這就解釋了爲什麼它可以用在代碼高爾夫球場中。 – user3334690 2015-01-26 19:59:14

回答

4

這只是意味着「字符」,如在?x爲「x字符」。在1.9之前的版本中,這是一個更大的交易。現在它主要是一個時代錯誤。

紅寶石1.9+:

?x 
# => "x" 

紅寶石1.8.7和先前:

?x 
# => 120 

這類似於'x'用C如何爲單個字符,其中"x"是字符串。

+0

這解釋了爲什麼它只適用於單個字符。爲什麼它改變了Ruby 1.9?另外,我應該如何參考它?它看起來更像是一個語法的東西而不是一個操作符,所以我可以理解它是否確實沒有名字,但是使用Google搜索?並沒有真正讓我走得很遠...... – user3334690 2015-01-26 20:09:08

+0

@ user3334690就我個人而言,我只是將其稱爲「字符文字」。 – Ajedi32 2015-01-26 20:15:36

+0

我相信這是Ruby早期版本中的一個效率讓步,你必須記得,可以追溯到20世紀90年代中期,當時計算機的命令速度較慢。創建字符串以表示單個字符的開銷對於某些任務而言過高。現在這是一個非問題,因此轉換。 – tadman 2015-01-26 20:26:02