มีโจทย์อยู่ข้อ ที่ต้องเขียน method ที่รับ parameter เป็น Number หรือ Range ก็ได้
โดยมีจำนวนไม่จำกัด
เช่น
build(1, 7, 11, 20..24, 32..78)
build(1..2)
build(8, 11..17)
ต้องการแปลงให้เป็น array ชุดเดียว ที่เก็บเลขที่เป็นไปได้ทั้งหมด
ผมก็นั่งเขียนทื่อๆเลย
def build(*args)
list = []
args.each {|arg|
case
when arg.class == Range:
arg.each {|n|
list << n
}
else
list << arg
end
}
list
end
ไปเห็น code ที่คนอื่นเขียนไว้
โจทย์เดียวกัน
def build(*args)
args = args.map {|arg| Array(arg) }.flatten
end
"เด็กเอ๋ยเด็กน้อย ความรู้เจ้ายังด้อยเร่งศึกษา.."
No comments:
Post a Comment