เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Multiple dispatch

Multiple dispatch เป็นหนึ่งในจุดเด่นสำคัญของ Julia ที่ช่วยเพิ่มทั้งความยืดหยุ่นและประสิทธิภาพให้กับโปรแกรม โดย multiple dispatch จะเลือกรันเมธอดที่แตกต่างกันตามประเภทของอาร์กิวเมนต์ที่ส่งเข้าไปในฟังก์ชัน

ตัวอย่างในวิดีโอใช้ multiple dispatch เพื่อคืนค่าที่แตกต่างกัน ขึ้นอยู่กับว่าประเภทของอาร์กิวเมนต์เป็น String หรือไม่

function add_values(x, y)
    x + y
end

function add_values(x::String, y::String)
    x * y
end

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Julia ระดับกลาง

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างฟังก์ชัน largest_value โดยให้ทำงานดังนี้:
    • ถ้าอินพุตเป็น String ให้ใช้ map เพื่อ map ฟังก์ชัน length กับแต่ละอาร์กิวเมนต์ (x, y, z)
    • ถ้าอินพุตเป็น Bool ให้คืนค่าอาร์กิวเมนต์นั้นโดยตรง
    • ถ้าอินพุตเป็นประเภทอื่น ให้หาค่าสูงสุดจากทุกค่าโดยใช้ maximum
  • ลบบรรทัดที่คอมเมนต์ไว้ที่ด้านล่าง (กรณีทดสอบ) แล้วตรวจสอบให้แน่ใจว่าลอจิกทำงานได้ถูกต้อง!

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create three functions to handle any input, String input, and Bool input
function largest_value(x, y, z)
  maximum((____, ____, ____))
end

function largest_value(x::____, y::____, z::____)
  map(length, (____, ____, ____))
end

function largest_value(x::____, y::____, z::____)
  x, y, z
end

# Un-comment this test case to test your function
#println(largest_value("12", "24", "36"))
แก้ไขและรันโค้ด