在 Ruby 裡,數字就是 Integer 這個類別的實體,包含所有四則運算 +
、-
、 *
、 /
,先乘除後加減,括號優先運算...等,就跟你認識的數學差不多,但是如果想要次方的話,這裡也提供方便的寫法,像是這樣:
puts 3 ** 2
=>9
puts 3 ** 3
=>27
另外,由於整數( Integer )跟浮點數( Float )是不一樣的型態,如果除數跟被除數都是整數的話,只會得到整數,例如:
puts 10/2
=> 5
puts 10/3
=> 3
這時候我們可以用兩種方法,to_f
或讓除數或被除數其中一個加上小數點就行了,像是這樣:
puts 10/3.to_f
=> 3.3333333333333335
puts 10/3.0
=> 3.3333333333333335
puts 10/3.0.round
=> 3
puts (10/3.0).round(2)
=> 3.33
round
是四捨五入的方法,你可以在括號內帶入你想要取到小數點第幾位。to_f
這個方法是指轉成浮點數型態,這裡的 f 就是浮點數( float ),在 Ruby 中有許多型態轉換方法,同理如果你要轉成整數型態,可以寫成 to_i
。
字串可以連結、組合:
name = "Karen"
age = 18
puts "我叫" + name + ",我今年" + age.to_s + "歲"
=> 我叫Karen,我今年18歲
用 +
是連結字串的方法之一,由於昨天說明過字串與數字不能相加,這裡我們可以用 to_s
這個方法將數字轉為字串型態。雖然這種方式可以無限連加,但是寫起來的手感不好,閱讀性也差,這很不 Ruby style 啊!我們用另一種方式:
name = "Karen"
age = 18
puts "我叫 #{name},我今年 #{age} 歲"
=> 我叫 Karen,我今年 18 歲
這樣的方法在排版上會更方便,除了標點符號書寫的地方沒那麼奇怪了,甚至每個空白字元都能完整呈現。這裡有個要注意的小地方,雖然單引號跟雙引號輸出的本質上並無差別,但雙引號的字串可以處理字串安插,但單引號字串則不會處理,試著替換看看:
name = "Karen"
age = 18
puts '我叫 #{name},我今年 #{age} 歲'
=> "我叫 \#{name},我今年 \#{age} 歲"
由於字串大概是程式語言最常用的東西了,字串類別的方法也相對多,可以像陣列一樣取索引值:
puts "我是不是很可愛?"[1]
=> 是
字首大寫:
puts "karen說名字字首要大寫!".capitalize
=> Karen說名字字首要大寫!
每個類別都有屬於自己的方法可以使用,而且非常豐富,如果要一一列出大概就能寫完30天了,想知道其他的方法就詳閱公開說明書 API 囉!
此文同步刊登於CJ-Han的網站