Dart 2.12 เปิดตัวแล้ว พร้อมด้วยความปลอดภัยแบบ null และการทำงานร่วมกันของ C

Google เปิดตัว Dart 2.12 ซึ่งเป็นเวอร์ชันใหม่ของภาษาที่ใช้สร้างแอปใน Flutter การเปิดตัวมาพร้อมกับ Flutter 2.0

กับ การเปิดตัว Flutter 2.0Google ยังนำ Dart 2.12 มาสู่ความเสถียรอีกด้วย ในกรณีที่คุณไม่รู้ Dart คือภาษาที่ Flutter ใช้ มันเป็นภาษาที่ใช้ TypeScript แต่มาพร้อมกับฟีเจอร์ภาษาเพิ่มเติมบางอย่าง รวมถึงภาษาที่ฉันกำลังจะพูดถึงด้วย

ความปลอดภัยที่เป็นโมฆะ

ความปลอดภัยแบบ Null เป็นฟีเจอร์ทางภาษาที่ยอดเยี่ยมทีเดียว โดยบังคับให้คุณพิจารณาว่าตัวแปรจะเป็นโมฆะหรือไม่ และจัดการกับสถานการณ์ที่เป็นโมฆะที่อาจเกิดขึ้นได้อย่างชัดเจน ขณะเดียวกันก็ให้คุณรับประกันว่าตัวแปรเฉพาะจะไม่มีวันเป็นโมฆะ

ใน Dart 2.12 ขณะนี้มีการรองรับความปลอดภัยแบบ null อย่างเต็มรูปแบบ โดยมีไวยากรณ์คล้ายกับ Swift และ Kotlin มีแม้กระทั่งการแคสต์อย่างชาญฉลาด โดยที่หาก Dart รู้แน่ว่าตัวแปรที่ไม่สามารถเป็นโมฆะได้ตามปกตินั้นไม่สามารถเป็นโมฆะได้ มันจะส่งมันไปเป็นรูปแบบที่ไม่เป็นโมฆะโดยปริยาย

เนื่องจากความปลอดภัยแบบ null เป็นการเปลี่ยนแปลงที่ร้ายแรง (มาก) คุณลักษณะนี้จึงถูกเลือกใช้ หากคุณอัปเดตเป็น Dart 2.12 การคอมไพล์ของคุณจะไม่เสียหาย และคุณไม่ต้องใช้เวลาหลายชั่วโมงในการเพิ่มคำแนะนำเรื่องความเป็นโมฆะให้กับทุกสิ่ง คุณยังสามารถใช้การพึ่งพาที่ไม่เป็นโมฆะได้หากโปรเจ็กต์ของคุณยังไม่ปลอดภัยเป็นโมฆะ

เมื่อคุณตัดสินใจที่จะย้ายข้อมูล คุณสามารถใช้เครื่องมือการย้ายข้อมูลในตัว (โผโยกย้าย) และ/หรือ คู่มือการโยกย้าย เพื่อเตรียมทุกอย่าง

นอกจากนี้ แม้ว่าความปลอดภัยของ null จะรวมอยู่ใน Dart 2.12 แต่หากคุณสร้างโปรเจ็กต์ Flutter ใหม่ ความปลอดภัยของ null จะไม่ถูกเปิดใช้งานทันที คุณจะต้องเปิดใช้งานด้วยตนเอง โครงการ Dart ใหม่จะเปิดใช้งานความปลอดภัยแบบ null

อินเทอร์เฟซฟังก์ชันต่างประเทศ

แม้ว่าการมุ่งเน้นของ Dart (และ Flutter) จะมุ่งเน้นไปที่ความเข้ากันได้ข้ามแพลตฟอร์มเต็มรูปแบบ แต่ก็ยังมีบางสิ่งที่ต้องทำโดยกำเนิด เพื่อให้การดำเนินงานแบบเนทิฟง่ายขึ้น Dart มีอินเทอร์เฟซฟังก์ชันต่างประเทศหรือ FFI FFI ช่วยให้คุณโต้ตอบกับโค้ด C จาก Dart โดยไม่ต้องใช้การเรียก API ที่ใช้สตริงแปลก ๆ หรือวิธีการทำงานร่วมกันที่ยุ่งยากอื่น ๆ

และด้วย Dart 2.12 ทำให้ FFI มีเสถียรภาพแล้ว ซึ่งหมายความว่าพร้อมที่จะใช้ในโครงการที่ใช้งานจริงและมีคุณสมบัติครบถ้วนเป็นส่วนใหญ่

ด้วยเหตุนี้ จึงมีการเปลี่ยนแปลงบางอย่างใน FFI รวมถึงการเปลี่ยนแปลงบางอย่างด้วย

จุดสนใจส่วนใหญ่ในการเปิดตัวครั้งนี้คือวิธีการใช้โครงสร้างกับ Dart และ C ประการแรก ตอนนี้คุณสามารถส่งผ่านโครงสร้างในโค้ด C ของคุณโดยการอ้างอิงและค่า ซึ่งก่อนหน้านี้รองรับเฉพาะการอ้างอิงเท่านั้น คุณสมบัติที่สำคัญอีกประการหนึ่งคือการรองรับโครงสร้างแบบซ้อนซึ่งไม่มีปรากฏก่อนการเปิดตัวครั้งนี้

ตอนนี้สำหรับการเปลี่ยนแปลงที่แตกหัก หากคุณใช้ FFI คุณอาจต้องอัปเดตโค้ดของคุณให้ทำงานกับเวอร์ชัน 2.12 ด้วย FFI เวอร์ชันนี้ คุณจะไม่สามารถสร้างโครงสร้างที่ว่างเปล่าได้อีกต่อไป หากคุณต้องการด้วยเหตุผลบางประการ คุณสามารถใช้ประเภท "ทึบแสง" ใหม่ได้ นอกจากนี้ยังมีการเปลี่ยนแปลงบางอย่างเกี่ยวกับวิธีการทำงานของฟังก์ชัน FFI ในตัวซึ่งคุณสามารถทำได้ อ่านเกี่ยวกับที่นี่.

สุดท้ายนี้ มีแพ็คเกจใหม่สำหรับ FFI ที่ให้คุณสร้างไฟล์หุ้ม FFI จากไฟล์ส่วนหัว C ที่มีอยู่ ซึ่งเรียกว่า ฟิเกน. หากคุณมีโค้ด C จำนวนมากที่จำเป็นต้องใช้ พร้อมด้วยวิธี API มากมาย สิ่งนี้จะมีประโยชน์มาก แม้ว่ารหัส C ที่คุณมีอยู่จะน้อย แต่นี่ก็เป็นคุณสมบัติที่สะดวกสบายที่ดี


และนั่นก็เพียงพอแล้วสำหรับ Dart 2.12 ด้วยการเพิ่มความปลอดภัยแบบ null และไลบรารีการทำงานร่วมกันของ C ที่เสถียร Dart กำลังกลายเป็นภาษาที่มีฟีเจอร์มากมาย แจ้งให้เราทราบว่าคุณคิดอย่างไรเกี่ยวกับ Dart 2.12 ในความคิดเห็น!