Skip to content

Instantly share code, notes, and snippets.

@fokayx
Last active August 29, 2015 14:22
Show Gist options
  • Select an option

  • Save fokayx/e2da008ba601d4d64bc3 to your computer and use it in GitHub Desktop.

Select an option

Save fokayx/e2da008ba601d4d64bc3 to your computer and use it in GitHub Desktop.
Ruby Explained: Numbers, Operators and Expressions

##Ruby Explained: Numbers, Operators and Expressions @ErikTrautman

使用Ruby進行數學運算的時候,運算的結果會和輸入數值的類型相同。也就是說如果以2個整數相除,相除的結果也會是整數。

> 5 / 3
> => 1

為了修正這個結果,你必須讓其中一個數值是可以有小數點的類型,例如浮點數(float)。

> 5.0 / 3 
=> 1.666666666666667
# 只要其中一個是浮點數,運算的結果就會是浮點數。

整數(integer)和浮點數(float)間的轉換非常容易,只要使用to_i或者to_f,就可以進行轉換。

> 5.20610.to_i
=> 5
> 5.to_f
=> 5.0

因為Ruby是一個非常彈性的語言,他讓你能做些古怪的事,一些你覺得應該可以但從未預期真的可以這麼做的事,例如:讓2種完全不同類型的資料相乘。

> "hi" * 3
=> "hihihi"

用變數同樣可以執行這種方式的運算:

> my_word = "howdy"
=> "howdy"
> my_word * 3
=> "howdyhowdyhowdy"

範圍(Range)是一個連續的序列,可以用一個簡寫的方式來表示,例如我們想表達3, 4, 5, 6, 7, 8, 9, 10, 11這一串數字,只要寫成(3..11),即是指3到11中間的所有整數,包含3跟11。如果是寫成(3...11)則會不包含11。 另外也可以使用Range.new(start, finish)表示,但在慣例上會使用簡寫的方法。

"=" =用於指定任務,像是指定一個變數的值:

> name = "Erik"

==用於檢查2個不同的實例是否相等。會常常用在有條件的情況下, 當創造了自己的類別(例如:"Animal"類別), 例如你創造了一個類別("Animal"),你得告訴Ruby如何按照你寫的方清去比較2個動物實體。 ===三個"="通常是指右邊的物件是不是屬於左邊的物件之一,例如:3是不是屬於(1..4)的範圍內呢?

> (1..4) === 3
=> true

同樣可以作用於確認該物件是否屬於某類別:

> Integer === 3
=> true

========= Ruby Explained是用"In-Plain-Engilish"來介紹Ruby的核心概念,這些概念也常見於其他的介紹中,不過在Erik Trautman這裡是免費而且儘量的淺顯易懂。

Erik Trautman說自己在學習新東西的時候,他希望有人能把他當做五歲小孩,為他進行解釋,Erik認為這樣是最好的學習方法,而且能避免錯失任何東西。

翻譯:Translate from Erik Trautman

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment