Flutter에서 int.parse와 int.tryParse는 문자열(String)을 정수(int)로 변환할 때 사용됩니다.
둘의 차이는 에러를 처리하는 방식입니다.
int.parseint.parse(String source)
source). int.parsevoid main() {
String numberString = '42';
// 문자열을 정수로 변환
int result = int.parse(numberString);
print(result); // 출력: 42
// 잘못된 문자열을 변환하려고 하면 예외 발생
String invalidString = 'abc';
try {
int invalidResult = int.parse(invalidString);
} catch (e) {
print('변환 실패: $e'); // 출력: 변환 실패: FormatException: Invalid radix-10 number
}
}
int.tryParsenull을 반환합니다.int.tryParse(String source)
source).null(변환 실패 시).int.tryParsevoid main() {
String numberString = '42';
// 문자열을 정수로 변환
int? result = int.tryParse(numberString);
print(result); // 출력: 42
// 잘못된 문자열은 null 반환
String invalidString = 'abc';
int? invalidResult = int.tryParse(invalidString);
print(invalidResult); // 출력: null
}
int.parse 사용 (값이 유효하다고 확신하는 경우)【코드에서 사용된 부분】void onStartTimeSaved(String? val) {
if (val == null) {
return;
}
startTime = int.parse(val); // 변환 실패 시 예외 발생
}
onStartTimeSaved 함수는 onStartTimeValidate를 통해 값이 유효한지 이미 검증한 상태에서 호출됩니다.int.parse를 사용합니다.int.tryParse 사용 (값이 유효한지 확인하는 경우)【코드에서 사용된 부분】String? onStartTimeValidate(String? val) {
if (val == null) {
return '값을 입력 해주세요!';
}
if (int.tryParse(val) == null) { // 변환 실패 여부를 체크
return '숫자를 입력해주세요!';
}
final time = int.parse(val); // 변환이 가능하므로 안전하게 사용
if (time > 24 || time < 0) {
return '0과 24 사이의 숫자를 입력해주세요';
}
return null;
}
int.tryParse를 사용하여 문자열이 숫자로 변환 가능한지 확인합니다.null을 반환하기 때문에, 에러 메시지를 반환하여 사용자에게 알릴 수 있습니다.| 특징 | int.parse | int.tryParse |
|---|---|---|
| 주요 특징 | 문자열을 정수로 변환, 실패 시 예외 발생 | 문자열을 정수로 변환, 실패 시 null 반환 |
| 에러 처리 | 예외 처리 필요 (try-catch 사용) | 예외 발생하지 않음 |
| 사용 상황 | 입력값이 올바른 숫자 문자열임이 확실할 때 | 입력값이 숫자가 아닐 가능성이 있을 때 |
| 반환값 | 변환된 정수 | 변환된 정수 또는 null |
int.parse는 변환이 실패할 가능성이 없는 경우에 사용합니다.
onStartTimeValidate) 안전하게 변환할 때 사용.int.tryParse는 변환 실패 가능성을 고려해야 할 때 사용합니다.
onStartTimeValidate) 안전하게 확인하기 위해 사용.이 두 가지 방식을 적절히 조합하여, 사용자 입력값 검증 및 변환 로직을 안전하게 처리할 수 있습니다. 😊