코틀린에서 변수를 선언하는 방법은 무엇인가요?
_____A1: 코틀린에서는 변수를 `val` 또는 `var` 키워드를 사용해 선언합니다.
- `val`은 한 번 값을 할당하면 변경할 수 없는 읽기 전용 변수 (immutable)입니다.
- `var`는 값을 변경할 수 있는 가변 변수 (mutable)입니다.
예시:
```kotlin
val name: String = "홍길동" // 변경 불가
var age: Int = 30 // 변경 가능
```
Q2: 타입을 명시하지 않고 변수를 선언할 수 있나요?
A2: 네, 코틀린은 타입 추론이 가능해서 초기값이 있으면 타입을 명시하지 않아도 됩니다.
예시:
```kotlin
val name = "홍길동" // String 타입 추론
var age = 30 // Int 타입 추론
```
Q3: 변수를 선언만 하고 나중에 초기화할 수 있나요?
A3:
- `var` 변수는 선언 시 바로 초기화하지 않아도 되지만, 사용 전에 반드시 초기화해야 합니다.
- `val` 변수는 선언 시 반드시 초기화해야 합니다.
예시:
```kotlin
var score: Int
score = 100 // 나중에 초기화 가능
val number: Int = 10
// val number2: Int // 초기화 없이 선언 불가
```
Q4: `lateinit var` 선언이란 무엇인가요?
A4: `lateinit var`는 나중에 초기화할 것이 확실한 가변 변수에 사용할 수 있으며, 기본형 타입(`Int`, `Double` 등)에는 사용할 수 없습니다. 주로 클래스 멤버 변수에 씁니다.
예시:
```kotlin
fun setup() {
data = "초기화됨"
}
```
Q5: 상수를 선언하려면 어떻게 하나요?
A5: 컴파일 시 값이 변경되지 않는 상수는 `const val`로 선언합니다. `const val`은 반드시 최상위 또는 객체(object) 내에 선언해야 합니다.
예시:
```kotlin
const val MAX_COUNT = 100
```
Q6: 지역 변수와 전역 변수 선언 방법은 어떻게 다른가요?
A6: 지역 변수는 함수 내부에서 `val` 또는 `var`로 선언합니다.
전역 변수는 파일 최상위에서 `val` 또는 `var`로 선언할 수 있습니다.
예시:
```kotlin
val globalVar = "전역 변수"
fun foo() {
val localVar = "지역 변수"
}
```
요약:
- `val` : 읽기 전용, 초기화 후 변경 불가
- `var` : 가변 변수, 변경 가능
- 타입 생략 가능 (타입 추론)
- 초기화 필수 (`val`은 선언 시, `var`는 사용 전)
- `lateinit var` : 나중에 초기화할 가변 변수
- `const val` : 컴파일 상수
코틀린 변수 선언은 간결하고 명확하며, 불변성(`val`) 권장이 특징입니다.
코틀린에서 변수를 선언하는 방법은 간단하면서도 강력한 기능을 제공합니다.
변수를 선언할 때는 주로 `val`과 `var` 키워드를 사용합니다.
이 두 가지 키워드는 변수의 특성과 용도에 따라 선택됩니다.
1. `val`과 `var`의 차이 - `val` : `val` 키워드를 사용하여 선언된 변수는 읽기 전용(immutable)입니다.
즉, 한 번 값을 할당하면 변경할 수 없습니다.
이는 변수가 변경되지 않도록 보장하여 코드의 안정성을 높이는 데 도움이 됩니다.
예를 들어: ```kotlin val name: String = "Alice" // name = "Bob" // 오류 발생: Val cannot be reassigned ``` - `var` : `var` 키워드를 사용하여 선언된 변수는 가변(mutable)입니다.
즉, 값을 변경할 수 있습니다.
이는 변수가 필요에 따라 변경될 수 있는 경우에 유용합니다.
예를 들어: ```kotlin var age: Int = 25 age = 26 // 정상적으로 변경 가능 ```
2. 타입 추론 코틀린은 타입 추론(type inference)을 지원합니다.
이는 변수를 선언할 때 타입을 명시적으로 지정하지 않아도 컴파일러가 자동으로 타입을 추론할 수 있음을 의미합니다.
예를 들어, 다음과 같이 타입을 생략할 수 있습니다: ```kotlin val city = "New York" // 컴파일러가 String으로 추론 var temperature = 30 // 컴파일러가 Int로 추론 ```
3. Nullable 변수 코틀린에서는 null 안전성을 제공하기 위해 nullable 타입을 지원합니다.
변수에 null 값을 허용하려면 타입 뒤에 `?`를 붙여야 합니다.
예를 들어: ```kotlin var nullableName: String? = null // nullableName은 null을 가질 수 있음 nullableName = "Bob" // 정상적으로 값 변경 가능 ``` 이 경우, nullable 변수를 사용할 때는 null 체크를 해야 하며, 이를 위해 안전한 호출 연산자(`?.`)나 엘비스 연산자(`?:`)를 사용할 수 있습니다.
4. 상수 코틀린에서는 `const` 키워드를 사용하여 컴파일 타임 상수를 정의할 수 있습니다.
`const`는 `val`과 함께 사용되며, 반드시 기본형 타입이어야 합니다.
예를 들어: ```kotlin const val MAX_COUNT = 100 ``` 이렇게 선언된 상수는 코드 전반에 걸쳐 재사용할 수 있으며, 값이 변경되지 않음을 보장합니다.
5. 변수 초기화 변수를 선언할 때 초기화하지 않으면 컴파일 오류가 발생합니다.
그러나 `lateinit` 키워드를 사용하면 나중에 초기화할 수 있는 변수를 선언할 수 있습니다.
이는 주로 의존성 주입이나 Android의 View와 같은 경우에 유용합니다.
예를 들어: ```kotlin lateinit var userName: String fun initializeUser() { userName = "Alice" } ``` 이 경우, `userName`은 초기화되기 전에 접근하면 오류가 발생합니다.
6. 변수 선언 예시 아래는 다양한 변수를 선언하는 예시입니다: ```kotlin fun main() { // 읽기 전용 변수 val pi: Double =
3.14 // 가변 변수 var counter: Int = 0 // nullable 변수 var nullableString: String? = null nullableString = "Hello, Kotlin" // 컴파일 타임 상수 const val MAX_USERS = 50 // late-initialized 변수 lateinit var user: String user = "John Doe" println("Pi: $pi") println("Counter: $counter") println("Nullable String: $nullableString") println("Max Users: $MAX_USERS") println("User: $user") } ``` 결론 코틀린에서 변수를 선언하는 방법은 매우 직관적이며, 언어의 특성상 안전성과 가독성을 높이는 여러 기능을 제공합니다.
`val`과 `var`의 적절한 사용, nullable 타입의 처리, 그리고 `lateinit`과 `const`의 활용은 코틀린 프로그래밍에서 중요한 요소입니다.
이러한 특성들을 이해하고 활용하면 더욱 효율적이고 안전한 코드를 작성할 수 있습니다.
작성자:
최예진 [비회원]
| 작성일자: 1년 전
2024-09-09 09:47:11
조회수: 261 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 261 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.