2012-12-10 136 views
3

爲什麼這個表達式評估爲13?紅寶石中的意外表達評估

我意外地評估了這個表達式(1_2).next而不是(1+2).next,其結果是o/p4。

=> (1_2).next 
=> 13 

請讓我知道這是我新來的Ruby

回答

9

紅寶石允許您使用_分手長的數字,例如

123456789 == 123_456_789 

,但後者是比較容易閱讀,所以你的代碼是一樣的12.next

+0

我所關注關於ruby的問題,他們解釋說Ruby中的所有東西都是對象,所以我認爲即使是1和2也是對象,所以ruby如何連接它? – swapnesh

+1

@swapnesh Ruby的解析器忽略'_'並只能看到一個對象。 Ruby不是連接兩個對象。 – oldergod

+0

@oldergod okkk ...得到了點..thx很多:) – swapnesh

3

1_2是相同的12 12.next是13下劃線的數字將被忽略,你可以使用他們的可讀性。例如。 1000_000_000是十億。