คอลเลกชันแบบ generic ในการใช้งานจริง
กำหนดชนิดให้ List, Map และคอนเทนเนอร์ที่สร้างเอง
คอลเลกชันแบบ generic ในการใช้งานจริง เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
โครงสร้างรวบรวมข้อมูลเป็นเจเนอริก
โครงสร้างรวบรวมข้อมูลที่ใช้เป็นประจำใน Dart ล้วนเป็นเจเนอริก List, Set และ Map ต่างก็รับพารามิเตอร์ประเภทข้อมูลเพื่อกำหนดสิ่งที่เก็บไว้ 📦
กำหนดประเภทให้ List
Listรับพารามิเตอร์ประเภทข้อมูลหนึ่งตัวสำหรับองค์ประกอบ การประกาศ List ของ String หมายความว่ารายการทุกตัวต้องเป็น String
List<String> names = ['Ada', 'Linus'];กำหนดประเภทให้ Set
Setทำงานในลักษณะเดียวกันและเก็บองค์ประกอบไม่ให้ซ้ำกัน Set ของ int จึงเก็บจำนวนเต็มโดยไม่มีค่าซ้ำ
Set<int> ids = {1, 2, 2, 3};กำหนดประเภทให้ Map
Mapรับพารามิเตอร์ประเภทข้อมูลสองตัว ตัวหนึ่งสำหรับคีย์และอีกตัวสำหรับค่า ลำดับมีความสำคัญ โดยระบุประเภทคีย์ก่อน
Map<String, int> ages = {'Ada': 36};อนุมานจากค่าลิเทอรัล
เมื่อคุณเขียนค่าลิเทอรัล Dart มักอนุมาน ประเภทข้อมูลจากเนื้อหาภายใน รายการตัวเลขจะกลายเป็น List ของ int โดยอัตโนมัติ
var scores = [90, 85, 100];ระบุประเภทให้ค่าลิเทอรัลว่าง
ค่าลิเทอรัลว่างไม่มีข้อมูลให้อนุมาน ดังนั้นให้ระบุ ประเภทข้อมูลด้วยตัวเอง มิฉะนั้น Dart อาจเดาประเภทที่คุณไม่ต้องการ
var queue = <String>[];ประเภทองค์ประกอบถูกส่งต่อ
เมื่อกำหนดประเภทข้อมูลแล้ว เมธอดจะคืนค่าเป็น ประเภทองค์ประกอบที่ถูกต้อง การอ่านจาก List ของ String จึงได้ String ที่พร้อมใช้งานโดยตรง
List<String> names = ['Ada'];
String first = names.first;ซ้อนเจเนอริก
คุณสามารถซ้อนพารามิเตอร์ประเภทข้อมูลได้ลึกเท่าที่ต้องการ Map จาก String ไปเป็น List ของ int เป็นรูปแบบที่ถูกต้องและได้รับการตรวจสอบครบถ้วน
Map<String, List<int>> grades = {
'Ada': [90, 85]
};เจเนอริกทำงานร่วมกับการแปลงข้อมูล
เมธอดอย่าง mapจะส่งต่อประเภทข้อมูลไปตามกระบวนการ การแปลง int เป็นสตริงจะได้ Iterable ของ String
var labels = [1, 2].map((n) => 'n=$n');โครงสร้างบรรจุข้อมูลแบบเจเนอริกที่กำหนดเอง
คลาสเจเนอริกที่คุณสร้างเองก็ทำงานร่วมกับระบบนี้ได้เช่นกัน Stack ของ T สามารถเก็บองค์ประกอบประเภทใดก็ได้ที่ผู้เรียกเลือก
class Stack<T> {
final _items = <T>[];
void push(T x) => _items.add(x);
}ปลอดภัยตั้งแต่ต้นจนจบ
ตั้งแต่การประกาศ การแปลง ไปจนถึงการจัดเก็บ ประเภทข้อมูลยังคงเป็นที่ทราบอยู่เสมอ นี่คือประโยชน์ที่ได้รับ: นำกลับมาใช้ซ้ำได้และตรวจสอบได้ครบตลอดกระบวนการ
ตรวจสอบความเข้าใจอย่างรวดเร็ว
Map รับพารามิเตอร์ประเภทข้อมูลกี่ตัว
สรุปทบทวน
คุณได้กำหนดประเภทให้ List, Set และ Map ใช้การอนุมาน ระบุประเภทให้ค่าลิเทอรัลว่าง และซ้อนเจเนอริกแล้ว ประเภทข้อมูลจะถูกส่งต่ออย่างปลอดภัยผ่านการแปลงทุกขั้นตอน ✅
คำถามที่พบบ่อย
บทเรียน “คอลเลกชันแบบ generic ในการใช้งานจริง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คอลเลกชันแบบ generic ในการใช้งานจริง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คอลเลกชันแบบ generic ในการใช้งานจริง”
กำหนดชนิดให้ List, Map และคอนเทนเนอร์ที่สร้างเอง คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “คอลเลกชันแบบ generic ในการใช้งานจริง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใด generics จึงดีกว่า dynamic
- คลาสและเมธอดแบบ generic
- พารามิเตอร์ชนิดข้อมูลแบบมีขอบเขตด้วย extends
- คอลเลกชันแบบ generic ในการใช้งานจริง