Ruby:
การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน
วิธีการ:
ลองนึกภาพว่าคุณกำลังเขียนสคริปต์เร็ว ๆ ที่จะทักทายผู้ใช้:
def greet(name)
"Hello, #{name}!"
end
puts greet("Alice") # ผลลัพท์: Hello, Alice!
puts greet("Bob") # ผลลัพท์: Hello, Bob!
หรืออาจถึงเวลาที่คุณกำลังคำนวณพื้นที่ของวงกลม:
def circle_area(radius)
Math::PI * radius ** 2
end
puts circle_area(5) # ผลลัพท์: 78.53981633974483
เนี๊ยบและง่ายต่อการจัดการ, ใช่ไหม?
การขุดลึก
ความคิดของฟังก์ชั่น หรือที่รู้จักในชื่อเมธอดใน Ruby ไม่ใช่เรื่องใหม่ - มันเก่าแก่เท่าที่การเขียนโปรแกรมมีมา เคยมีผู้กลับมาถึงยุค 1950s, subroutines, อย่างที่พวกเขาถูกเรียก, ถูกนำมาใช้เพื่อลดความซ้ำซ้อน
มีทางเลือกอื่นอีกไหม? แน่นอน, คุณมีโค้ดแบบอินไลน์, คุณอาจเลือกทำ OOP ด้วยคลาสและอ็อบเจ็กต์, หรือแม้แต่ฟังก์ชันแบบฟังก์ชันนัลด้วย lambdas และ procs แต่ฟังก์ชันนั้นเป็นหลักการของโค้ดที่เรียบร้อย ต้องการประสิทธิภาพ? ตัวแปรในฟังก์ชันมีความเร็วสูง และฟังก์ชันสามารถส่งคืนค่าทันทีด้วย return
ในแง่ของการใช้งาน, คุณสามารถกำหนดฟังก์ชันด้วย def
และจบด้วย end
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้น, ใช้ตัวดำเนินการ splat สำหรับฟังก์ชัน variadic, และอีกมากมาย ฟังก์ชันสามารถเรียบง่ายหรือซับซ้อนตามที่คุณต้องการ