บางครั้งก็เห็นแบบนี้
List list = [];
แล้วก็ list..add(color)
การใช้ 1 dot ( .) และ 2 dot ( ..) ต่างกันอย่างไร
บางครั้งก็เห็นแบบนี้
List list = [];
แล้วก็ list..add(color)
การใช้ 1 dot ( .) และ 2 dot ( ..) ต่างกันอย่างไร
คำตอบ:
เป็นตัวดำเนินการเรียงซ้อนของ Dart
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
ส่งผลl1ให้เป็นรายการ[0, 1, 2, 3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
ส่งผลให้เกิดข้อผิดพลาดเนื่องจาก.add(0)ส่งคืนvoid
..(ในตัวอย่างก่อนหน้า) อ้างถึงnew List()ในขณะที่.(ในภายหลัง) หมายถึงค่าที่ส่งคืนของส่วนก่อนหน้าของนิพจน์
..ได้รับการแนะนำเพื่อหลีกเลี่ยงความจำเป็นในการส่งคืนthisในทุกวิธีเช่นadd()เพื่อให้สามารถใช้ API ได้อย่างคล่องแคล่ว
.. ให้สิ่งนี้นอกกรอบสำหรับทุกชั้นเรียน
newเป็นทางเลือก ..หมายถึงรายการที่ส่งกลับโดยnew List<int>()และช่วยให้การเรียกวิธีการหลายคนมันเหมือนadd(0) addAll(...)ได้โดยไม่ต้องทำซ้ำl1.และมันก็เป็นเช่นรายการที่สร้างขึ้นที่กำหนดให้l1, ไม่ได้ค่าตอบแทนของวิธีการที่ผ่านมาในห่วงโซ่ ( addAll(...)) สิ่งนี้ตอบคำถามของคุณหรือไม่?
newเป็นทางเลือกที่เริ่มต้นด้วย Dart 2.0 ฉันเพิ่งสับสนกับnewบริบทข้างต้นและขอบคุณสำหรับคำอธิบายของคุณ
..add(6)เป็นเหมือนl1.add(6), เป็นเหมือน.add(6) ผลตอบแทนและคุณไม่สามารถโทรในl1.add(5).add(6)add(5)voidadd()void
Cascades (.. ) ช่วยให้คุณสร้างลำดับของการดำเนินการบนวัตถุเดียวกันได้ อ่านเอกสารเพื่อดูรายละเอียด
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
ตัวอย่างก่อนหน้านี้เทียบเท่ากับ:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
..onClickไม่แปลเป็นbutton.classes.onClick?
..เรียกว่าตัวดำเนินการเรียงซ้อนในโผ
ช่วยให้คุณสามารถใช้การดำเนินการในภายหลังมากกว่าหนึ่งครั้ง:
ตัวอย่าง:
banerad..load()..show().
List coursename;
coursename..add("java")..add("flutter" )..add("dart");
นี่คืออีกตัวอย่างหนึ่ง
.. (in former example) refers to new List()คุณหมายความว่าเรากำลังสร้างใหม่อีกครั้งListเมื่อเราใช้..ในความคิดของฉัน NO ฉันสับสนกับnewคำของคุณมันใหม่จริงๆหรือคุณกำลังพูดถึงnewคีย์เวิร์ดที่นี่