ความปลอดภัยของค่า 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คลาสข้อมูลสำหรับโดเมนของคุณ
- Enum และคลาสปิดผนึกสำหรับสถานะ
- ความปลอดภัยของค่า null ในโมเดล shared
- ตัวช่วยตรวจสอบข้อมูลในโมเดล