Null-Safety

shin·2022년 4월 23일
0

Flutter

목록 보기
2/12

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 값을 갖는다고 알려줘야 한다
이 때 '!'를 쓴다.

0개의 댓글