Null : 아직 값이 정해지지 않은 것
Null safety : 변수들은 null 값을 갖을 수 없다.
모든 변수는 null이 될 수 없으며, non-nullable 변수에는 null 값을 할당할 수 없음
void main(){ String name; int age = null; print(name); print(age); }
non-nullable 변수를 위한 null check가 필요 없음
int number = 4; void main(){ if (number == null) return; int sum = number + 5; print(sum); }
"Class 내의 변수는" 반드시 선언과 동시에 초기화를 시켜야 함
class Person{ int age = 30; }
변수에 null 값이 반드시 필요할 때가 있다.
type 뒤에 `?`를 붙여준다
null check 한
class Person {
String? name;
String nameChange(String? name){
this.name = name;
if(name == null){
return 'need a name';
} else {
return name.toLowerCase();
}
}
}
void main() {
Person p = Person();
if(p.name == null){
print('need a name');
} else {
print(p.nameChange(p.name));
}
}
변수값이 나중에 할당되어야 할 때 late를 쓴다.
class Person {
late int age;
int sum(int age, int num) {
this.age = age;
int total = age + num;
return total + age;
}
}
void main() {
Person p = Person();
print(p.sum(100, 50));
}
void main() {
int x = 50;
int? y;
if(x>0) {
y = x;
}
int value = y!;
print(value);
}
nullable 변수값은 non-nullable 변수값에 할당을 할 수 없다.
그래서 nullable 변수값 y가 항상 non-nullable 값을 갖는다고 알려줘야 한다
이 때 '!'를 쓴다.