작성
·
167
0
안녕하세요! 타입과 형변환을 보고있는데요, 제가 아예 쌩초보라 벌써 헷갈려서요..!
fun main() {
val test1 = "1234"
val test2 = 1234
println(test1 + 1)
println(test2 + 1)
}
강의에서 test1은 문자니까 문자열이 합쳐지는 것이고, test2는 숫자니까 더해지는 거라고 말씀해 주셨는데,
println(test1 + 1)에서 뒤에 더해주는 1은 (""없어도) string 타입이고, println(test2 + 1)에서 뒤에 더해주는 1은 int 타입인 건가요??
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
찹쌀약과님, 타입에 대해서 질문하셨군요!
Kotlin에서는 타입 추론이라는 기능을 통해 변수에 할당되는 값을 보고 컴파일러가 변수의 타입을 판단합니다. 따라서 val test1 = "1234"
는 test1
이 String
타입으로 추론되며, val test2 = 1234
는 test2
가 Int
타입으로 추론됩니다.
println(test1 + 1)
에서 1
은 Int
타입이지만, test1
이 String
이기 때문에 1
이 문자열로 자동 변환되어 두 문자열이 연결됩니다.
반면 println(test2 + 1)
에서는 test2
도 Int
, 1
도 Int
타입이므로 두 숫자가 더해지는 수치 연산이 수행됩니다.
즉, 1
은 기본적으로 Int
타입이지만, 문자열과 함께 사용될 때는 문자열로 변환되어 처리되는 것입니다.
혼란이 되실 수 있는 부분이니, Kotlin의 타입 시스템과 타입 추론, 그리고 연산자에 대해 좀 더 차근차근 공부해보시면 도움이 될 것입니다.
0