Elm:
การพิมพ์ผลลัพธ์การแก้ไขโค้ด

วิธีการ:

Elm ไม่มีฟังก์ชั่น print ภายในตัวเหมือนภาษาอื่นบางภาษา แต่คุณสามารถใช้โมดูล Debug สำหรับผลลัพธ์คอนโซลได้:

import Debug

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
  model
    |> Debug.log "model before update"
    |> actualUpdateFunction msg
    |> Debug.log "model after update"

คุณจะเห็นผลลัพธ์อย่างนี้ในคอนโซลของเบราว์เซอร์:

model before update: { ... ข้อมูลโมเดลบางส่วน ... }
model after update: { ... ข้อมูลโมเดลที่อัปเดตแล้วบางส่วน ... }

จำไว้ว่าฟังก์ชั่น Debug.log มีประโยชน์ แต่อย่าปล่อยโค้ดของคุณออกมาพร้อมกับมัน Elm จะเตือนคุณให้ลบข้อความการแก้ไขข้อผิดพลาดก่อนที่คุณจะสร้างบิลด์รุ่นผลิตภัณฑ์ได้

การดำดิ่งลึก

Debug.log เป็นส่วนหนึ่งของโมดูล Debug ของ Elm ซึ่งออกแบบมาเพื่อสนับสนุนการพัฒนาเท่านั้น ตามประวัติศาสตร์ Elm ได้เน้นความสำคัญไปที่การบำรุงรักษาและการจัดการข้อผิดพลาด ทำให้โมดูล Debug เรียบง่ายโดยตั้งใจ เรียบง่ายนี้มั่นใจว่านักพัฒนาจะจดจ่ออยู่กับผลลัพธ์ที่มีความหมายมากกว่าที่จะหลงทางไปในชุดการแก้ไขข้อผิดพลาดขนาดใหญ่

ฟังก์ชั่น Debug.log ของ Elm รับสองอาร์กิวเมนต์: แท็กสตริงและข้อมูลที่จะบันทึกออก ผลลัพธ์จะถูกพิมพ์ออกมาที่คอนโซลเบราว์เซอร์ ทางเลือกของวิธีการนี้จะเป็น:

  1. การบันทึกคอนโซลแบบดั้งเดิม: Elm ไม่สนับสนุนการบันทึกคอนโซลโดยตรงเนื่องจากสถาปัตยกรรมของ Elm มุ่งเน้นไปที่การรับประกันศูนย์ข้อผิดพลาดระหว่างการทำงาน และการบันทึกโดยตรงอาจทำให้การรับประกันนี้พังทลาย.
  2. Time-Traveling Debugger ของ Elm: เครื่องมือนี้ช่วยให้คุณสามารถมองเห็นสถานะของแอปพลิเคชันของคุณได้ตลอดเวลาโดยไม่ต้องใช้บันทึกคอนโซลและเป็นวิธีที่ทรงพลังในการแก้ไขแอปที่ซับซ้อน

ในการนำไปใช้ ฟังก์ชั่น Debug.log จะห่อข้อมูลของคุณด้วยแท็กตัวระบุ ซึ่งมีประโยชน์ในการแยกความแตกต่างของจุดข้อมูลต่างๆ ในรุ่นผลิตภัณฑ์ ตัวคอมไพเลอร์ของ Elm จะทำเครื่องหมายการใช้งาน Debug.log ใดๆ ทำให้คุณเก็บโค้ดผลิตภัณฑ์ของคุณให้สะอาดจากผลิตภัณฑ์การแก้ไขข้อผิดพลาด

ดูเพิ่มเติม