[kotlin] 변수 값의 복사와 참조의 차이

코틀린에서 변수를 다루다 보면 값의 복사와 참조의 개념을 이해하는 것이 중요합니다. 이 블로그 포스트에서는 코틀린에서 변수 값의 복사와 참조의 차이에 대해 알아보겠습니다.

1. 값의 복사 (Pass by Value)

값을 복사하는 경우, 변수에 저장된 값의 복사본이 새로운 변수에 저장됩니다. 이는 두 변수가 서로 독립적으로 값을 갖게 되는 것을 의미합니다.

예를 들어:

var a = 10
var b = a
a = 20
println(b) // 출력: 10

위의 예제에서 a의 값이 b로 복사되었지만, a가 변경되더라도 b의 값은 그대로 유지됩니다. 이는 값의 복사를 통해 변수간에 독립적인 값을 유지할 수 있다는 장점이 있습니다.

2. 값의 참조 (Pass by Reference)

값을 참조하는 경우, 변수에는 값의 참조(메모리 주소)가 저장되며, 실제 값이 저장된 메모리 주소를 공유합니다. 이는 한 변수의 값이 변경되면, 다른 변수에 저장된 값도 함께 변경된다는 것을 의미합니다.

예를 들어:

data class Person(var name: String)

var person1 = Person("Alice")
var person2 = person1
person1.name = "Bob"
println(person2.name) // 출력: Bob

위의 예제에서 person2person1을 참조하고 있기 때문에, person1name을 변경하면 person2name도 함께 변경됩니다.

결론

코틀린에서 변수 값의 복사와 참조의 개념을 이해하고, 이를 활용할 수 있다면 변수를 다룰 때 발생할 수 있는 오류를 방지하고 효율적으로 프로그래밍할 수 있습니다.

이상으로 코틀린에서 변수 값의 복사와 참조의 차이에 대해 알아본 내용을 마치겠습니다.

참고: Kotlin Language Reference - Classes and Inheritance