
TIL 14일 차 - Swift 문법 사용자 입력받기 readLine()
스위프트에서 readLine()은 콘솔에서 한 줄의 문자열(String)값을 입력받는 함수이다.
즉 사용자가 엔터를 치기 전까지의 입력한 내용을 가져오게 된다.
반환 타입은 String?(옵셔널)로 입력이 없거나 실패하게 되면 nil값을 가지게 된다.
대표적인 예제
print("이름을 입력하세요: ")
let name = readLine()
print("입력한 이름은 \(name)")
// name이 옵셔널이므로 경고
사용자가 아무것도 치지않고 입력하는 경우와 입력 스트림이 종료되는 경우에 앱이 터질 수 있어서
스위프트는 안전하게 옵셔널로 반환하게 만들었다 ^^
앱이 아니라 공부하는 내속이 터질 거 같다 여태배운언어중에 이렇게 입력하나 받는 거에도 깐깐스러운 언어는 난생처음 봄 진심으로
그렇다면 올바르게 사용하는 법엔 무엇이 있을까?
(1) if let으로 안전하게 받기
print("이름을 입력하세요: ")
if let name = readLine() {
print("안녕하세요, \(name)님~")
} else {
print("입력이 없습니다.")
}
(2) guard let으로 받기
print("이름을 입력하세요: ")
guard let name = readLine() else {
print("입력이 없습니다.")
exit(0)
}
print("안녕하세요, \(name)님~")
(3) 숫자 입력받기
print("나이를 입력하세요: ")
if let input = readLine(),
let age = Int(input) { // 중첩된 옵셔널 바인딩 한줄로 줄여씀
print("내년에는 \(age + 1) 살입니다.")
} else {
print("숫자를 입력해주세요.")
}
Int(input) 실패하면 nil 반환 (따라서 해당값도 옵셔널 Int)
Int("123") // 123
Int("일이삼") // nil
'iOS > Swift ' 카테고리의 다른 글
| [iOS] ARC 순환참조 해제 문제 (0) | 2026.01.14 |
|---|---|
| [iOS-Swift] 객체 지향 프로그래밍 OOP (0) | 2026.01.14 |
| [iOS-Swift] 문법 기초주차 과제 최종 리펙토링 (0) | 2026.01.12 |
| [iOS-Swift] ARC (1) | 2026.01.12 |
| [iOS-Swift] 클로저 closure 심화 (0) | 2026.01.12 |