코딩할 때, ! 이거는 무슨 의미였지?
코딩 처음할 때 !가 붙는 변수를 본적이 있어 꽤나 혼란합니다.
!은 무엇이고, ?는 또 뭐지? 헷갈린적이 있어서 간단히 정리하고자 합니다.
간단히 정의하자면 ?는 null의 값의 유무를 정하는 연산자로, null값이 있는지 없는지를 검사해주는 일을 합니다.
!는 반대로 단언하는 연산자로 해당 값은 null값을 가지고 있지 않다고 정의합니다.
예시코드))
1
2
3
|
String? nullableString;
String unNullableString = nullableString!;
|
cs |
위의 코드에서 nullableString 변수는 null을 가질 수 있지만, nonNullableString 변수는 null을 가질 수 없습니다.
! 연산자는 nullableString이 null이 아님을 단언하면서, 그 값을 nonNullableString에 할당하게 됩니다.
연산자가 이 변수는 null이 없다고 단언하고 있기 때문에, null 검사를 생략하고 값을 바로 사용할 수 있게 됩니다.
하지만 주의해야 할 점은, 만약 nullableString이 null인 상태에서 nonNullableString에 값을 할당하려고 할 경우, 'NoSuchMethodError' 예외가 발생할 수 있습니다. 따라서 ! 연산자를 사용할 때는 해당 값이 항상 null이 아님을 확신할 때만 사용하는 것이 좋습니다.
!과 다르게 ? 연산자는 단언하지 않고 검사하면서 작동하는데, null 검사와 안전한 접근을 동시에 처리하는 유용한 기능을 제공합니다.
만약 nullableString이 null이라면, 자동으로 null이 반환되게 됩니다.
? 연산자는 코드에서 변수나 표현식이 null일 수 있는 경우에 이 연산자를 사용하면 예외 상황을 방지하고 코드를 간결하게 유지할 수 있습니다. 요약하자면, ? 연산자는 null-안전성 연산자로 사용되며, null인지 아닌지를 검사하여 null일 경우에는 접근을 건너뛰고 null을 반환합니다.
'프로그래밍' 카테고리의 다른 글
동기성 비동기성 차이 (0) | 2023.12.03 |
---|---|
zsh: command not found: flutter (0) | 2023.11.05 |
소프트웨어 이해하기 (0) | 2023.06.12 |
프로그래밍 기본기 (0) | 2023.06.11 |