Wednesday, March 15, 2006

วันนี้นั่งฝึกทำโจทย์ใน Ruby Quiz
มีโจทย์อยู่ข้อ ที่ต้องเขียน 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


"เด็กเอ๋ยเด็กน้อย ความรู้เจ้ายังด้อยเร่งศึกษา.."

Related link from Roti

No comments: