iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0

昨天分享了基本的運算符,今天來分享進階的* 運算符(Splat Operator)** 運算符(Double Splat Operator),筆者也是今天要撰寫主題時才發現***都是運算符呢~~

* 運算符(Splat Operator)

  • 通常用於處理方法參數清單中的可變數量的參數(可變長度參數)。
  • 當你在方法定義中使用*時,它允許你將一個陣列或多個參數打包成一個array
def sum(*numbers)
  total = 0
  numbers.each { |num| total += num }
  total
end

puts sum(1, 2, 3, 4) # 輸出10
  • 當你在方法呼叫*使用時,它允許你將一個array的元素展開為多個參數。
numbers = [1, 2, 3, 4]
result = sum(*numbers) # 展開array
puts result # 輸出10

** 運算符(Double Splat Operator)

  • 通常用於處理方法參數清單中的可變數量的關鍵字參數(關鍵字參數的hash)。
  • 當你在方法定義中使用**時,它允許你將一組關鍵字參數打包成一個hash
def options(**params)
  puts params
end

options(name: 'John', age: 30, city: 'New York')
# 輸出:{ :name=>"John", :age=>30, :city=>"New York" }
  • 當你在方法呼叫使用**時,它允許你將一個hashkey,value對展開為關鍵字參數。
user_info = { name: 'Alice', age: 25, city: 'Los Angeles' }
options(**user_info) # 通過**展開hash
# 輸出:{ :name=>"Alice", :age=>25, :city=>"Los Angeles" }

參考資料:


上一篇
Day26 Ruby物件導向實踐- 運算符
下一篇
Day28 Ruby物件導向實踐-Error Handling
系列文
入坑 RoR 必讀 - Ruby 物件導向設計實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言