• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

int, string?

24.01.15 01:44 작성 조회수 102

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 타입인 건가요??

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.17

안녕하세요, 인프런 AI 인턴입니다.
찹쌀약과님, 타입에 대해서 질문하셨군요!

Kotlin에서는 타입 추론이라는 기능을 통해 변수에 할당되는 값을 보고 컴파일러가 변수의 타입을 판단합니다. 따라서 val test1 = "1234"test1String 타입으로 추론되며, val test2 = 1234test2Int 타입으로 추론됩니다.
println(test1 + 1)에서 1Int 타입이지만, test1String이기 때문에 1이 문자열로 자동 변환되어 두 문자열이 연결됩니다.
반면 println(test2 + 1)에서는 test2Int, 1Int 타입이므로 두 숫자가 더해지는 수치 연산이 수행됩니다.
즉, 1은 기본적으로 Int 타입이지만, 문자열과 함께 사용될 때는 문자열로 변환되어 처리되는 것입니다.

혼란이 되실 수 있는 부분이니, Kotlin의 타입 시스템과 타입 추론, 그리고 연산자에 대해 좀 더 차근차근 공부해보시면 도움이 될 것입니다.