กฎ ตั้งค่า
ประเภทชุด
ชุดเป็นคอลเล็กชันที่ไม่เรียงลำดับ ชุดต้องไม่มีรายการที่ซ้ำกัน
ไม่มีการตั้งค่าลิเทอรัลเพื่อใช้ในการสร้างชุด แต่ให้สร้างชุดจาก
รายการโดยใช้ List.toSet()
ดู rules.List
// Create a set and check its size ['a','b'].toSet().size() == 2
นอกจากวิธีการที่ระบุไว้ด้านล่างนี้แล้ว ชุดยังมีโอเปอเรเตอร์ต่อไปนี้ด้วย
โอเปอเรเตอร์ | การใช้งาน |
---|---|
x == y |
เปรียบเทียบเซต x และ y |
v in x |
ตรวจสอบว่ามีค่า v ในชุด x หรือไม่ เช่น 'a' in ['a','b'].toSet() == true |
เมธอด
ความแตกต่าง
changes() จะแสดงผล rules.Set
แสดงชุดที่เป็นผลต่างระหว่างการเรียกใช้ที่ตั้งไว้
difference()
และชุดถูกส่งต่อไปยัง difference()
ซึ่งหมายความว่าจะแสดงชุดที่มีเอลิเมนต์ใน
ชุดการเปรียบเทียบที่ไม่อยู่ในชุดที่ระบุ
หากชุดเหมือนกัน จะแสดงผลชุดว่าง (size() == 0
)
- การคืนสินค้า
-
ตั้งค่าความแตกต่าง
non-null rules.Set
ซึ่งมีองค์ประกอบที่พบใน ชุดการเปรียบเทียบที่ไม่ได้อยู่ในชุดการโทร
ตัวอย่าง
['a','b'].toSet().difference(['a','c'].toSet()) == ['b'].toSet()
มีทั้งหมด
hasAll() จะแสดง rules.Boolean
ทดสอบว่าการเรียกใช้ hasAll()
ที่ตั้งไว้มีรายการทั้งหมดหรือไม่
ในชุดการเปรียบเทียบที่ส่งไปยัง hasAll()
- การคืนสินค้า
-
non-null rules.Boolean
ว่าชุดการโทรจะมีรายการทั้งหมดของ ชุดหรือรายการเปรียบเทียบ
ตัวอย่าง
['a','b'].toSet().hasAll(['a','c']) == false
['d','e','f'].toSet().hasAll(['d','e']) == true
มีทั้งหมด
has Any() แสดงผล rules.Boolean
ทดสอบว่าการเรียกใช้ hasAny()
ที่ตั้งไว้มีรายการเดียวกันหรือไม่
ในชุดหรือลิสต์ที่ส่งไปยัง hasAny()
- การคืนสินค้า
-
non-null rules.Boolean
ว่าชุดการโทรมีรายการต่างๆ หรือไม่ ของชุดหรือรายการเปรียบเทียบ
ตัวอย่าง
['a','b'].toSet().hasAny(['c','d'].toSet()) == false
['a','b'].toSet().hasAny(['a','c'].toSet()) == true
มีเฉพาะ
hasOnly() แสดงผล rules.Boolean
ทดสอบว่าการเรียกใช้ hasOnly()
ที่ตั้งไว้มีแต่รายการหรือไม่
ในชุดรายการหรือชุดการเปรียบเทียบที่ส่งไปยัง hasOnly()
- การคืนสินค้า
-
non-null rules.Boolean
ไม่ว่าชุดการโทรจะมีเฉพาะรายการของ ชุดหรือรายการเปรียบเทียบ
ตัวอย่าง
['a','b'].toSet().hasOnly(['a','c']) == false
['a','b'].toSet().hasOnly(['a','b']) == true
อินเตอร์เซกชัน
Intersection() จะแสดงผล rules.Set
แสดงชุดที่เป็นจุดตัดระหว่างการเรียกเซ็ต
intersection()
และชุดที่ส่งไปยัง
intersection()
ซึ่งหมายความว่าจะแสดงชุดที่มีเอลิเมนต์
ที่ทั้ง 2 ชุดมีร่วมกัน
หากชุดต่างๆ ไม่มีองค์ประกอบที่เหมือนกัน ระบบจะแสดงชุดว่าง
(size() == 0
)
- การคืนสินค้า
-
ตั้งค่าสี่แยก
non-null rules.Set
ที่มีองค์ประกอบที่พบในทั้ง 2 รูปแบบ ชุดการโทรและชุดการเปรียบเทียบ
ตัวอย่าง
['a','b'].toSet().intersection(['a','c'].toSet()) == ['a'].toSet()
ขนาด
size() จะแสดงผล rules.Integer
แสดงผลขนาดของชุด
- การคืนสินค้า
-
non-null rules.Integer
จำนวนค่าในชุดที่ระบุ
Union
union() จะแสดง rules.Set
ส่งคืนชุดที่เป็นการรวมของการเรียกชุด union()
และ
ชุดที่ส่งไปยัง union()
ซึ่งหมายความว่าจะแสดงชุดที่มี
จากทั้ง 2 ชุด
- การคืนสินค้า
-
ชุดสหภาพ
non-null rules.Set
ที่มีองค์ประกอบทั้งหมดในทั้ง ชุดการโทรและชุดการเปรียบเทียบ
ตัวอย่าง
['a','b'].toSet().union(['a','c'].toSet()) == ['a', 'b', 'c'].toSet()