연습장/이론
Kotlin_ 1-2. 전역변수, 지역변수
아이른
2024. 4. 11. 12:30
1. 전역변수
- 전역적으로 사용할 수 있는 변수 (Global Variable)
- 어디에서나 접근할 수 있는 변수
- 지양 : 가독성이 떨어지고, 어떤 변수를 어느 위치에 적절하게 사용해야 되는지 알 수 없는 경우 발생
2. 지역변수
- 지역적으로 사용할 수 있는 변수 (Local Variable)
- 정한 영역(Scope)에서만 사용할 수 있는 변수
3. 가변성(Mutability)
- 변할 수 있는 (var)
- 어디에서나 접근 가능하기 때문에 printHelloWorld() 에서도 쉽게 접근
var hello = "hello"
//전역변수
fun main() {
printHelloWorld()
}//hello world
private fun printHelloWorld(){
hello += " world"
println(hello)
}
- 한 메서드에서 값을 변경하게 되면 다른 메서드에서도 반영이 되어버려 추후에 변경점이 일어난 메서드를 찾기 힘듦
var hello = "hello"
fun main() {
printHelloWorld()
printHello()
}
/*
hello world
hello world
첫 함수에서 변수의 값을 바꾸었기 때문에 두번째 함수도 hello world 출력
*/
private fun printHelloWorld(){
hello += " world"
println(hello)
}
private fun printHello(){
println(hello)
}//원하는 출력 : hello >> 실제 출력 hello world
- 변경 된 값을 지정하고 싶지 않을 때, 해당 메서드에서 지역 변수로 값을 변경
var hello = "hello"
fun main() {
printHelloWorld()
printHello()
}
/*
hello world
hello
*/
private fun printHelloWorld(){
hello += " world"
println(hello)
}
private fun printHello(){
hello = "hello" //지역변수
println(hello)
}
- 전역 변수를 변경 할 때, 지역 변수로 지정한 메서드는 변경이 되지 않음
var hello = "안녕"
fun main() {
printHelloWorld()
printHello()
}
/*
안녕 world
hello
*/
private fun printHelloWorld(){
hello += " world"
println(hello)
}
private fun printHello(){
hello = "hello"
println(hello)
}
4. 불변성(Immutability)
- 변할 수 없는 (val)
fun main() {
printHelloWorld()
printHello()
}
/*
Hello world
hello
*/
private fun printHelloWorld() {
val helloWorld = "Hello world"
println(helloWorld)
}
private fun printHello() {
val hello = "hello"
println(hello)
}