Const, Static และ Final ใน Dart ต่างกันอย่างไร

NottDev
1 min readJun 22, 2020

--

Const

ตัวแปรที่มีกำหนดค่าได้ครั้งเดียว และต้องมีการกำหนดค่าเริ่มต้นให้เสมอเมื่อประกาศ และไม่สามารถแก้ไขค่าได้

ตัวอย่างเช่น

const Pi = 3.14;

Static

ใช้แชร์ตัวแปรระหว่างคลาสเดียวกัน

ตัวอย่างเช่น

class Student {
String name;
int age;
static List<String> regulation;
Student(this.name, this.age);
}

Final

ตัวแปรที่มีกำหนดค่าได้ครั้งเดียว และต้องมีการกำหนดค่าเริ่มต้นให้เสมอ และเมื่อกำหนดค่าให้แล้วจะไม่สามารถแก้ไขค่าได้ กรณีเป็น Reference/Object Data Types สามารถแก้ไขค่าได้ แต่ไม่สามารถกำหนดค่าให้ตัวแปรใหม่ได้

ตัวอย่างเช่น

// Primitive Data Types
final String name = "NottDev";
name = "NottDev Edit"; // can't set
// Reference/Object Data Types
final List<String> fruits = ['apple', 'orange', 'banana'];
fruits.removeLast(); // ['apple', 'orange'];
fruits = []; // can't set

primitive Data Types : int, double, boolean and string
Reference/Object Data Types: List, Map, Object

--

--

NottDev
NottDev

Written by NottDev

Your only limit is your mind.

Responses (1)