Booleans เป็นประเภทข้อมูลตรรกะ เก็บค่าได้เพียง 2 ค่าคือ true
และ false
อ้างอิงจาก bool class ใน Dart
true
แทนตรรกะ จริงfalse
แทนตรรกะ เท็จโดยทั่วไปค่า boolean จะได้จากการทดสอบเปรียบเทียบประโยค ค่าตัวแปร หรือจากผลการทำงานของฟังก์ชั่น เพื่อให้ทราบว่าทำสำเร็จหรือไม่
void main() {
String myName = 'John';
bool noName = myName.isEmpty;
print(noName); // output → false
}
หากต้องการใช้ตัวแปรประเภท bool class สามารถประกาศด้วยค่า true
หรือ false
หรือจะมาจากผลของการทดสอบ เปรียบเทียบของคำสั่งก็ได้
bool hasLife = true;
var isEmpty = false;
var moreThanOne = 2 > 1; // true
ค่า bool มักนำไปใช้ทดสอบในคำสั่งต่าง ๆ เช่น if
while
do while
var num1 = 0;
if (2 > num1) {
//do when num1 less than 2
} else {
//do when num1 equal or more than 2
}
while (true) {
// endless loop
}
do {
// one time loop
} while (false);
ใน bool class จะรองรับ Logical operators ทั้งหมด 4 ตัว ได้แก่ !
&&
||
^
!
ตัว !
หรือ NOT เป็น operator ที่ใช้กลับค่าตรรกะของ boolean ให้เป็นค่าตรงกันข้าม
!true
ผลที่ได้จะเป็น false
!false
ผลที่ได้จะเป็น true
void main() {
var num2 = 2;
print(num2.isEven); // output → true
print(!num2.isEven); // output → false
}
true
ทุกตัวไม่งั้น false
ด้วย &&
&&
หรือ logical AND จะใช้สำหรับทดสอบว่าถ้าเป็น true
ทั้งหมด ผลที่ได้จะเป็น true
นอกนั้น false
print(true && true); // output → true
print(true && false); // output → false
print(false && false); // output → false
print(true && true && false); // output → false
true
อย่างน้อย 1 ตัว จะได้เป็น true
ด้วย ||
||
หรือ logical OR จะใช้สำหรับทดสอบว่าถ้าเป็น true
อย่างน้อย 1 ตัว ผลที่ได้จะเป็น true
print(true || true); // output → true
print(true || false); // output → true
print(false || false); // output → false
print(true || true || false); // output → true
true
ด้วย ^
^
หรือ XOR (exclusive OR) ใช้สำหรับทดสอบว่าทั้งสองตัวเหมือนกันหรือไม่
true
false
void main() {
print(true ^ true); // output → false
print(true ^ false);// output → true
print(false ^ true);// output → true
print(false ^ false);// output → false
}
ตัวนี้เป็น operator ของ bool class ที่ใช้ทดสอบแค่ object 2 ตัวเท่านั้น โดยทำงานจากซ้ายไปขวา ตัวอย่าง true ^ true → false
แต่ true ^ true ^ true → true
เพราะทำจากคู่ซ้ายก่อน (true ^ true → false) ^ true
เอามาเทียบกับที่เหลือ (false) ^ true → true