ตัวอ่านและตัวกำหนดค่า
เปิดเผยพร็อพเพอร์ตีที่คำนวณหรือมีการป้องกัน
ตัวอ่านและตัวกำหนดค่า เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
มากกว่าฟิลด์ธรรมดา
บางครั้งคุณต้องการคุณสมบัติที่คำนวณค่าหรือมีการควบคุม Dart จึงมีตัวอ่านค่าและตัวกำหนดค่าเพื่อควบคุมวิธีอ่านและเขียนค่า
ตัวอ่านค่าคืออะไร
ตัวอ่านค่าจะดูเหมือนฟิลด์เมื่อมองจากภายนอก แต่จะเรียกใช้โค้ดเพื่อสร้างค่า ใช้คีย์เวิร์ด get เพื่อกำหนดตัวอ่านค่า
int get area => width * height;ตัวอ่านค่าคำนวณค่า
ตัวอ่านค่าเหมาะอย่างยิ่งสำหรับค่าที่คำนวณจากฟิลด์อื่น อ่านค่าได้ด้วยสัญกรณ์จุดปกติ โดยไม่ต้องใช้วงเล็บ
class Box {
int w = 2, h = 3;
int get area => w * h;
}การเรียกใช้ตัวอ่านค่า
เข้าถึงตัวอ่านค่าเหมือนกับฟิลด์ทุกประการ โค้ดภายในจะทำงานทุกครั้ง จึงสะท้อนข้อมูลล่าสุดเสมอ
var b = Box();
print(b.area); // 6ตัวกำหนดค่าคืออะไร
ตัวกำหนดค่าจะเรียกใช้โค้ดเมื่อคุณกำหนดค่า ใช้คีย์เวิร์ด set และพารามิเตอร์เพียงหนึ่งตัวเพื่อรับข้อมูลเข้า
set width(int value) {
_w = value;
}ตัวกำหนดค่าควบคุมข้อมูลเข้า
ตัวกำหนดค่าสามารถตรวจสอบค่าก่อนจัดเก็บได้ ปฏิเสธข้อมูลที่ไม่ถูกต้อง จำกัดช่วงค่า หรือบันทึกการเปลี่ยนแปลงได้โดยตรงภายในการกำหนดค่า
set age(int v) {
if (v >= 0) _age = v;
}ฟิลด์เบื้องหลังแบบส่วนตัว
ชื่อที่ขึ้นต้นด้วยขีดล่างจะเป็นส่วนตัวสำหรับไลบรารี ตัวกำหนดค่ามักใช้ควบคุมฟิลด์เบื้องหลังส่วนตัว เช่น _age
int _age = 0;
int get age => _age;การเรียกใช้ตัวกำหนดค่า
กำหนดค่าให้ตัวกำหนดค่าเหมือนกับกำหนดค่าให้ฟิลด์ด้วยเครื่องหมายเท่ากับ Dart จะส่งการกำหนดค่านั้นผ่านโค้ดควบคุมของคุณ
var p = Person();
p.age = 25;ตัวอ่านค่าโดยไม่มีตัวกำหนดค่า
กำหนดเฉพาะตัวอ่านค่าเพื่อสร้างคุณสมบัติแบบอ่านอย่างเดียว โค้ดภายนอกอ่านค่าได้ แต่ไม่สามารถกำหนดค่าให้ได้
String get fullName => "$first $last";เหตุผลที่มีตัวอ่านค่าและตัวกำหนดค่า
ทั้งสองช่วยให้คุณเปลี่ยนวิธีจัดเก็บข้อมูลภายในได้ภายหลังโดยไม่ทำให้โค้ดที่เรียกใช้เสียหาย คุณสมบัติสาธารณะยังคงเหมือนเดิม ขณะที่ตรรกะถูกซ่อนไว้เบื้องหลัง 🔐
ตัวอย่างพร็อพเพอร์ตี้คำนวณค่า
ตัวอ่านค่าเหมาะอย่างยิ่งสำหรับการจัดรูปแบบ คุณสามารถรวมฟิลด์ต่าง ๆ เป็นข้อความที่อ่านเป็นพร็อพเพอร์ตี้ทั่วไปได้อย่างเป็นธรรมชาติ
String get label => "$name: $score pts";ตรวจสอบความเข้าใจอย่างรวดเร็ว
หากต้องการให้ผู้อื่นอ่านพร็อพเพอร์ตี้ได้ แต่ไม่สามารถกำหนดค่าให้ได้ คุณจะต้องกำหนดสิ่งใด
ทบทวน: ตัวอ่านค่าและตัวกำหนดค่า
คุณได้เรียนรู้ว่าตัวอ่านค่าคำนวณและเปิดเผยค่า ตัวกำหนดค่าช่วยตรวจสอบการกำหนดค่า และเมื่อใช้ร่วมกันจะซ่อนรายละเอียดภายในได้อย่างเป็นระเบียบ 🎉
คำถามที่พบบ่อย
บทเรียน “ตัวอ่านและตัวกำหนดค่า” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวอ่านและตัวกำหนดค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวอ่านและตัวกำหนดค่า”
เปิดเผยพร็อพเพอร์ตีที่คำนวณหรือมีการป้องกัน คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวอ่านและตัวกำหนดค่า” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กำหนดคลาสพร้อมฟิลด์
- เมธอดของอินสแตนซ์และ this
- ตัวอ่านและตัวกำหนดค่า
- สมาชิกแบบ static และค่าคงที่ของคลาส