你好,我是富士大顆 Aiko
繼前篇的 字串 methods 今天來介紹數字的 methods 們
以下是常用的 20+ 個 Ruby 數字方法:
abs:絕對值, absolute 的縮寫
num = -5
puts num.abs
#5
sqrt(n):n 開根號。
num = 25
puts Math.sqrt(num)
#5.0
pow(n):n 次方。
num = 2
puts num.pow(3)
#8
divmod(n):返回除法的商(n)和餘數。
puts = 10.divmod(3)
#3
#1
ceil:天花板,將數字無條件進位取整數
num = 4.5
puts num.ceil
#5
floor:地板,無條件捨去取整數
num = 4.5
puts num.floor
#4
round:四捨五入到整數。
num = 4.5
puts num.round
#5
max:找出最大值。
numbers = [9, 5, 2, 7]
puts numbers.max
#9
min:找出最小值。
numbers = [9, 5, 2, 7]
puts numbers.min
#2
sort:小到大排列。(也可以用在字串 array abcd 哦)
numbers = [9, 5, 2, 7]
puts numbers.sort
#[2, 5, 7, 9]
reverse:大到小排列
numbers = [9, 5, 2, 7]
puts numbers.reverse
#[9, 7, 5, 2]
sum:總和
numbers = [9, 5, 2, 7]
puts numbers.sum
#23
reduce(n):自定義累積邏輯,並使用初始值 n(這邊幫我畫三顆星星!!)
numbers = [9, 5, 2, 7]
puts numbers.reduce(0) { |acc, cv| acc + cv }
#初始值 0 然後把陣列內的數字進行互加:0+9-> 0+9+5-> 9+5+2-> 9+5+2+7
#23
reduce
跟 sum
有什麼差別?雖然兩者都可以計算總數,但是 ```reduce``` 提供初始值 n,因此在使用上加大了彈性
to_f:將整數換為小數點。
num = 3
puts num.to_f
#3.0
to_i:將小數點或字串轉換為整數。會是 floor
的無條件進位哦
num = "5.6"
puts num.to_i
#5
to_s:將數字轉換為字串。
num = 5566
puts num.to_s
#"5566"
even?:檢查數字是否為偶數。
num = 6
puts num.even?
#true
odd?:檢查數字是否為奇數。
num = 7
puts num.odd?
#true
between?:檢查數字是否在指定的範圍內。
num = 3
puts num.between?(1, 5)
#true
succ:返回數字的下一個數字。succeed
num = 5
puts num.succ
#6
pred:返回數字的前一個數字。predecessor
num = 5
puts num.pred
#4
times:執行指定次數操作。數字雖然可以超大,可是會耗費大量資源與時間
3.times do
puts "Hello"
end
# Hello
# Hello
# Hello
clamp(a, b):將數字限制在 a 到 b 內。一般來說 a < b
num = 8
puts num.clamp(1, 5)
#5 #雖然數字是 8 但 1~5 之間最大是 5 最接近 8
num = -5
puts num.clamp(3, 4)
#3
差點要來不及,什麼事情我們明天再說!!!