iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
自我挑戰組

30天從零到有,帶你進入程式的世界系列 第 19

[Day 19] Ruby : 變數與常數

  • 分享至 

  • xImage
  •  
  • 在 Ruby 中使用變數,不需要特別宣告或是指定型態。
message = "你好"
puts message
# message 為變數
  • 常數用起來其實跟變數差不多,也不需要特別宣告它是常數,但在 Ruby 對常數有 特別的命名規定,就是「常數必須要是大寫英文字母開頭」,所有的類別、模組的名字都必須是常數。
ExchangeRate = 0.28
Name = "kitty"

print, puts 及 p 之比較

跟console.log()一樣,ruby 也有用來輸出內容的指令: print, puts 跟 p,這三個差在哪裡呢?

  • print : 會印出內容物、印出的東西為連續排列(視覺可讀性較差)、回傳值為 nil。

  • puts : puts 是 put string 的簡寫、會印出內容物、方法帶有換行符號(印出的內容物會自動換行)、回傳值為 nil。

  • p : 會完整印出內容物的型態與結構、方法帶有換行符號(印出的內容物會自動換行)、回傳值為內容物完整的型態與結構。

https://ithelp.ithome.com.tw/upload/images/20231004/20162648M2AbQRgd6a.png

  1. 基本上,只有使用p的時候,會回傳值,print跟puts都不會回傳值。
  2. print跟p都會印出資料如陣列轉為字串的結果,但puts則是會依序把陣列項目印出,puts可以搭配使用inspect,也可以達到印出整個陣列轉為字串的效果,但基本上還是不會回傳值。
  3. puts跟p在印出值之後會換行,但print不會。
  4. p 的字串結果會包含””

練習: 印出hello world

print "Hello, World"
#Hello, World

puts "Hello, World"  
#Hello, World

p "Hello, World"
#"Hello, World"
  1. print "Hello, World" : 印出 Hello, World
  2. puts "Hello, World" : 印出 Hello, World ,並在結尾加上換行
  3. p "Hello, World" : 印出 "Hello, World"(含雙引號),並在結尾加上換⾏

插入變數#{}

  • 插入變數"#{ }": (雙引號可以辨認變數)
name = "Yen"
age = 26
puts "Hi, I am #{name}, and I am #{age} years old"
#Hi, I am Yen, and I am 26 years old

數字

整數

在ruby中,提供了一些方法可以讓數字變成整數

  • num.round : 四捨五入到整數
  • num.floor : 無條件捨去到整數(floor = 地板 = 無條件捨去)
  • num.ceil : 無條件進位到整數(ceil = 天花板 = 無條件進位)
  • num.to_i : 無條件捨去到整數
puts 1.55.round 
# 2
puts 10.74.floor 
# 10
puts 100.14.ceil 
# 101
puts 1000.14.to_i 
# 1000

小數位數

  • num.round(2) : 四捨五入到小數第 2 位
puts 3.333.round(2)   
# 3.33
puts 4.518.round(2)   
# 4.52

除法

在ruby中使用除法,可以直接使用"/",並且用puts查看結果,如果是整數除整數的話得到的結果會被捨去小數部分,因此如果想要答案包含小數部分的話,前面的被除數應該要加上小數點,表示這個是一個浮點數

puts 10/3      # 整數除以整數得到整數 3
puts 10.0/3    # 3.3333333
puts 10/3.0    # 3.3333333
puts 10.0/3.0  # 3.3333333

轉換型別

  1. str.to_i : 字串轉成整數
str = "123"
int = str.to_i
  1. str.to_f : 字串轉換為浮點數
str = "3.14"
float = str.to_f
  1. num.to_s : 整數或浮點數轉換為字串
num = 123
str = num.to_s

上一篇
[Day 18] GitHub
下一篇
[Day 20] Ruby : if 判斷
系列文
30天從零到有,帶你進入程式的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言