코틀린 독학 7 Data types

코틀린 독학 7

데이터 유형이란 무엇입니까?

우리 모두는 숫자와 텍스트 조각이 상당히 다르다는 것을 알고 있습니다. 우리는 이것을 어떻게 알 수 있습니까? 숫자에는 산술 연산(예: 곱셈)을 수행할 수 있지만 텍스트에는 수행할 수 없습니다. Kotlin도 이를 알고 있습니다. 그렇기 때문에 모든 변수에는 이 변수에 대해 수행할 수 있는 가능한 작업과 변수에 저장할 수 있는 값을 결정하는 유형이 있습니다.

변수 유형

변수 유형은 변수가 선언될 때 설정됩니다.

val text = "Hello, I am studying Kotlin now."
val n = 1

이 경우 Kotlin은 그것이 text문자열이고 n숫자라는 것을 알고 있습니다. Kotlin은 두 변수의 유형을 자동으로 결정합니다. 이 메커니즘을 유형 추론 이라고 합니다 .

다음 코드를 살펴보시기 바랍니다. 유형 추론을 사용하여 변수를 선언하는 방법은 다음과 같습니다.

val/var identifier = initialization

변수를 선언할 때 변수 유형을 지정할 수도 있습니다.

val/var identifier: Type = initialization 

참고로 유형 이름은 항상 대문자로 시작됩니다.

이전 예제와 동일한 변수를 선언하고 해당 유형을 지정해 보겠습니다.

val text: String = "Hello, I am studying Kotlin now."
val n: Int = 1

유형 Int은 변수가 정수( 012, …, 100_000_000, …)를 저장한다는 것을 의미합니다. 유형 String은 변수가 문자열( "Hello""John Smith")을 저장함을 의미합니다. 나중에 이러한 데이터 유형과 기타 데이터 유형에 대해 자세히 알아봅니다.

실제로 사람들은 이러한 두 가지 형태의 변수 선언을 모두 사용하는 것을 볼 수 있습니다. 유형 추론을 사용하면 코드가 더 간결해지고 읽기 쉬워지지만 경우에 따라 유형을 지정하는 것이 더 나을 수도 있습니다. 예를 들어 변수를 선언하고 나중에 초기화해야 하는 경우 유형 추론이 전혀 작동하지 않습니다.

val greeting // error
greeting = "hello"

위의 예시는 올바르지 않습니다. 왜냐하면 Kotlin은 단순히 선언된 변수의 유형을 추론할 수 없지만 모든 변수에는 유형이 있어야 하기 때문입니다. 반대로, 아래 예제는 프로그래머가 유형을 지정했기 때문에 작동합니다.

val greeting: String // ok
greeting = "hello"

유형 불일치

데이터 유형의 가장 중요한 기능 중 하나는 변수에 부적절한 값을 할당하지 않도록 보호하는 것입니다. 작동하지 않는 코드의 예를 살펴보십시오.

val n: Int = "abc" // Type mismatch: inferred type is String but Int was expected

따라서 유형 불일치 오류가 표시되면 변수에 적합하지 않은 항목을 할당했다는 의미입니다. 유형 추론을 사용하여 선언된 가변 변수에 부적합한 값을 할당하려고 하면 동일한 문제가 발생합니다.

var age = 30 // the type is inferred as Int
age = "31 years old" // Type mismatch

참고로 변수 유형은 변경할 수 없습니다.

결론

나중에 우리는 다른 데이터 유형과 이와 관련된 몇 가지 문제에 대해 배울 것입니다. 이제부터 기억하세요: 변수가 생성되면 유형이 있으며 나중에 유형을 변경할 수 없습니다.

20240113 224753 1

자 문제를 시작하도록 하죠! 너무 쉬운 것은 뺐습니다.

20240113 224753 2

두가지 방식의 표현이 가능하죠. Int를 넣어주느냐 마느냐. Int는 생략해도 무방합니다.

20240113 224753 3

이번에도 String 은 생략 가능합니다.

20240113 224753 4

val first 와 val last val age를 넣어줍니다. 그러면 자동으로 알아서 됩니다. age는 제가 되고 싶은 나이를 썼어요 ㅋㅋㅋㅋ

20240113 224753 5

solution에는 이렇게도 코딩이 가능하다고 나와있네요

20240113 224753 6

이제 이건 너무 쉽죠…? 그러나 올려봅니다

20240113 224753 7

이것도 쉬운것

20240113 224753 8

이것도 쉬운것!

20240113 224753 9

Float은 소수점입니다.

20240113 224753 10

저는 100에다가 ” ” 을 넣어서 “100”으로 만들어주었습니다. 어렵지 않죠.

20240113 224753 11

solution에서는 그냥 이렇게 더 간단하게 해결했네요!

20240113 224753 12

Int는 정수를 표현합니다. 음수도 정수로 치는것 같습니다. 그러나 “-12″나 ‘7’ 같은것은 Int가 받는게 아닙니다.

20240113 224753 13

20240113 224753 14

바꿔야 하는 코드가 많았습니다. 그러나 어렵진 않습니다.

20240113 224753 15

println(age)에서 출력할 값이 없어 error가 뜹니다.

20240113 224753 16

글자 그대로가 답

20240113 224753 17

20240113 224753 18

20240113 224753 19

20240113 224753 20

코틀린 독학 7

이거…. val 옆에 칸 띄어주는거 해줘야 합니다. ㅎㅎㅎ 처음에 왜 틀렸나 싶더라구요

오늘도 수고하셨습니다.