การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน

Elm:
การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน

วิธีทำ:

นี่คือส่วนของโค้ด Elm พร้อมฟังก์ชันง่ายๆ สำหรับการทักทายผู้ใช้:

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String
greetUser userName =
    "Hello, " ++ userName ++ "!"

main =
    text (greetUser "Casey")

เมื่อรัน คุณจะได้ผลลัพธ์: “Hello, Casey!”

ตอนนี้ ลองพูดว่าคุณต้องการเพิ่มการปรับแต่งเป็นส่วนตัว เพิ่มฟังก์ชันมากขึ้น!

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String -> String
greetUser greeting userName =
    greeting ++ ", " ++ userName ++ "!"

personalGreeting : String -> String
personalGreeting userName =
    greetUser "Howdy" userName

main =
    text (personalGreeting "Casey")

ตอนนี้ เมื่อคุณรัน: “Howdy, Casey!” มีเวทมนตร์หรือ? ไม่หรอก แค่ฟังก์ชันกำลังทำงานของมัน

ลงลึกขึ้น

ในยุคสมัยก่อน โค้ดมักจะเป็นลำดับคำสั่งยาวๆ (คิดถึงโค้ดขั้นสปาเกตตี้) มันเป็นฝันร้ายในการดูแล จากนั้นการเขียนโปรแกรมแบบมีโครงสร้างก็เข้ามา และก็มีฟังก์ชัน โปรแกรม Elm เช่นเดียวกับบรรพบุรุษการเขียนโปรแกรมแบบฟังก์ชันขึ้นอยู่กับฟังก์ชันอย่างหนักในการจัดระเบียบ

คุณสามารถซ้อนฟังก์ชัน เพื่อสร้างการปิด หรือรักษาความเรียบง่ายด้วยฟังก์ชันบริสุทธิ์ Elm สนับสนุนสิ่งหลัง: ฟังก์ชันบริสุทธิ์พร้อมอินพุตและเอาท์พุตที่กำหนดไว้อย่างชัดเจน นำไปสู่การแก้ไขบั๊กและการทดสอบที่ง่ายขึ้น

ฟังก์ชันใน Elm ยังสามารถเป็นฟังก์ชันชั้นสูง หมายความว่าสามารถยอมรับหรือส่งคืนฟังก์ชันอื่น ความสามารถนี้เปิดโลกของการรวมกัน อย่างไรก็ตาม ไม่เหมือนกับภาษาอื่นๆ Elm ไม่มีการโหลดฟังก์ชันในแบบต่างๆ; ทุกฟังก์ชันต้องมีชื่อที่ไม่ซ้ำกัน

นอกจากนี้ Elm ยังบังคับระบบการประเภทแบบเข้มงวดที่ไม่เพียงแต่ตรวจสอบประเภท แต่ยังสามารถแนะนำได้ด้วย ลดโค้ดที่ซ้ำซาก

เมื่อเทียบกับทางเลือกอื่นๆ เช่นระบบการจัดระเบียบโค้ดแบบวิธีการหรือวัตถุในภาษาอื่น Elm มุ่งเน้นที่ความเรียบง่ายและความสามารถในการคาดการณ์ Elm ไม่มีวัตถุหรือคลาส คุณจัดระเบียบโค้ดด้วยฟังก์ชันและโมดูลแทนคลาสและอินสแตนซ์

ดูเพิ่มเติม

ต้องการศึกษาเพิ่มเติม ดูทรัพยากรเหล่านี้:

  • คู่มืออย่างเป็นทางการของ Elm เกี่ยวกับฟังก์ชัน: https://guide.elm-lang.org/core_language.html
  • เอกสารการใช้งานแพคเกจของ Elm สำหรับตัวอย่างฟังก์ชันที่ซับซ้อนมากขึ้น: https://package.elm-lang.org/
  • เรียนรู้เกี่ยวกับระบบการประเภทของ Elm ซึ่งทำงานร่วมกับการจัดระเบียบฟังก์ชันได้อย่างดี: https://elm-lang.org/docs/types