0Pricing
Kotlin Multiplatform Academy · บทเรียน

ความปลอดภัยของค่า null ในโมเดล shared

ใช้ความสามารถด้านค่า null ของ Kotlin เพื่อป้องกันแอปล่มข้ามแพลตฟอร์ม

ความปลอดภัยของค่า null ในโมเดล shared เป็นบทเรียน Kotlin Multiplatform Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Multiplatform Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

ป้องกันแอปล่มได้

ค่าที่หายไปเป็นสาเหตุสำคัญอย่างหนึ่งที่ทำให้แอปล่ม ความปลอดภัยจากค่า null ของ Kotlin ช่วยให้โมเดลที่ใช้ร่วมกันป้องกันปัญหานี้ได้บนทั้งสองแพลตฟอร์ม

ไม่เป็น null โดยค่าเริ่มต้น

ชนิดข้อมูลทั่วไปไม่สามารถเก็บค่า null ได้ การประกาศฟิลด์เป็น String รับประกันว่าฟิลด์นั้นจะมีค่าจริงอยู่เสมอ

data class User(val name: String)

ชนิดข้อมูลที่รับค่า null ได้

เติม เครื่องหมายคำถาม เพื่ออนุญาตให้เป็น null การทำเช่นนี้จะระบุว่าฟิลด์เป็นตัวเลือก และคอมไพเลอร์จะบังคับให้คุณจัดการกรณีที่ไม่มีค่า

data class User(val name: String, val nickname: String?)

ตัวดำเนินการเรียกใช้แบบปลอดภัย

ใช้ ?. เพื่ออ่านฟิลด์ที่อาจเป็น null อย่างปลอดภัย หากค่าเป็น null นิพจน์ทั้งหมดจะให้ผลเป็น null แทนที่จะทำให้แอปล่ม

val length = user.nickname?.length

กำหนดค่าทดแทน

ตัวดำเนินการ Elvis ?: จะกำหนดค่าเริ่มต้นเมื่อค่าเป็น null ทำให้โค้ดส่วนถัดไปได้รับค่าที่ใช้งานได้เสมอ

val shown = user.nickname ?: "Anonymous"

ค่าเริ่มต้นในโมเดล

กำหนด ค่าเริ่มต้น ให้พารามิเตอร์ของตัวสร้าง เพื่อให้ผู้เรียกข้ามฟิลด์ที่ไม่บังคับได้ทั้งหมด โดยโมเดลยังคงไม่เป็น null

data class User(val name: String, val active: Boolean = true)

การแปลงชนิดอัตโนมัติหลังตรวจสอบ

เมื่อยืนยันแล้วว่าค่าไม่เป็น null Kotlin จะทำ การแปลงชนิดอัจฉริยะ ให้ ภายในเงื่อนไขนั้นคุณจึงใช้ค่าเป็นชนิดทั่วไปที่ไม่เป็น null ได้

if (user.nickname != null) {
  println(user.nickname.length)
}

หลีกเลี่ยงตัวดำเนินการ !!

ตัวดำเนินการ !! บังคับให้ค่าเป็นชนิดที่ไม่เป็น null และทำให้แอปล่มหากค่านั้นเป็น null ควรเลือกใช้การเรียกแบบปลอดภัยและ Elvis แทน

val risky = user.nickname!!.length // can crash

จำลองการมีหรือไม่มีค่าอย่างตรงไปตรงมา

ระบุฟิลด์เป็น nullable เฉพาะเมื่อฟิลด์นั้นอาจไม่มีค่าจริง ๆ ชนิดข้อมูลที่ชัดเจนจะอธิบายโดเมนของคุณให้ทั้งสองทีมเข้าใจ

data class Profile(val bio: String?, val avatar: String?)

เหตุผลที่สำคัญเมื่อใช้ข้ามแพลตฟอร์ม

ความปลอดภัยจากค่า null อยู่ใน commonMain ดังนั้น Android และ iOS จึงได้รับ การป้องกัน แบบเดียวกันจากโมเดลเดียวกัน 🙂

แหล่งข้อมูลจริงเพียงหนึ่งเดียว

เนื่องจากกฎเรื่องการรับค่า null อยู่ในโค้ดที่ใช้ร่วมกัน จึงไม่มีแอปใดเผลอปฏิบัติต่อฟิลด์ที่เป็นตัวเลือกเหมือนเป็น ค่าที่จำเป็น ได้

ตรวจสอบความเข้าใจ

ควรอ่านฟิลด์ที่อาจเป็น null พร้อมค่าทดแทนอย่างไร

สรุปทบทวน

ระบุฟิลด์ที่เป็นตัวเลือกด้วย ? อ่านค่าด้วยการเรียกแบบปลอดภัยและ Elvis และหลีกเลี่ยง !! เพื่อให้โมเดลที่ใช้ร่วมกันปลอดภัยจากแอปล่มบนทั้งสองแอป

คำถามที่พบบ่อย

บทเรียน “ความปลอดภัยของค่า null ในโมเดล shared” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ความปลอดภัยของค่า null ในโมเดล shared” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Multiplatform Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ความปลอดภัยของค่า null ในโมเดล shared”

ใช้ความสามารถด้านค่า null ของ Kotlin เพื่อป้องกันแอปล่มข้ามแพลตฟอร์ม คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Multiplatform Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Multiplatform Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ความปลอดภัยของค่า null ในโมเดล shared” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Multiplatform Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Multiplatform Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คลาสข้อมูลสำหรับโดเมนของคุณ
  2. Enum และคลาสปิดผนึกสำหรับสถานะ
  3. ความปลอดภัยของค่า null ในโมเดล shared
  4. ตัวช่วยตรวจสอบข้อมูลในโมเดล
← กลับไปที่ Kotlin Multiplatform Academy