flutter_기본

dart - tryParse

studyapps 2025. 8. 25. 22:47
 

final lCount = int.tryParse(book['lcount'].toString()) ?? 0;

 

이게 무슨 소리 인가?

 

.toString()
어떤 종류의 데이터가 들어있든, 일단 전부 글자(String)로 바꿔버린다.

ㄴ숫자 123 -> 글자 "123"
ㄴ아무것도 없음(null) -> 글자 "null"

 

int.tryParse(...)
글자를 숫자로 변환하는 것을 시도(try) 한다.

만약 글자가 "hello"나 "null"처럼 숫자로 바꿀 수 없는 모양이라면, 에러를 내는 대신 조용히 실패하고 null을 돌려준다

이것이 그냥 int.parse()와의 가장 큰 차이점이며, 앱이 죽지 않게 만든다

?? 0
"만약 왼쪽의 결과가 null(꽝)이라면, 대신 이 값을 사용해라" 라는 의미의 널 병합 연산자(Null-coalescing operator)


작동
int.tryParse가 성공해서 숫자 123을 돌려주면, ?? 0 부분은 무시되고 loanCount에는 123이 저장
int.tryParse가 실패해서 null(꽝)을 돌려주면, ?? 연산자가 작동하여 loanCount에 0 저장