iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
Software Development

Ruby 研究 30 天系列 第 3

Day 2 - 數字與字串

Integer (整數)

在 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


Spring (字串)

字串可以連結、組合:

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的網站


上一篇
Day 1 - First Step in Ruby
下一篇
Day 3 - 範圍與陣列
系列文
Ruby 研究 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言