Effective Kotlin - 변수의 범위 최소화
2021. 7. 22. 09:18ㆍComputer
변수의 범위를 최소화 하자
핵심포인트
- property 대신 지역변수를 사용하자
- 가능한한 가장 작은 범위에서 변수를 사용하자
책에서말하는 근거
- Scope 이 넓은 변수의 경우, 그 만큼의 코드를 다른 개발자들이 파악해야한다.
- 언제 정의되었고 초기화되는지. ( 일반적으로 우리는 정의를 함과 동시에 초기화를 진행하는 경우가 많다. 그렇지 않으면, 코드상에서 해당 변수가 언제 초기화되는지도 찾아봐야 하기 떄문이다. )
- for 문을 마치고 나서, 변경된 값의 내용을 추리해야한다던지.
- Sequence 내부 로직 처리시, 의도치 않는 값이 나올 수 있다.
에라토스테네스 체 ( 소수 구하는 방법 중 하나 )
동작하는 코드
```
val primes: Sequence<Int> = sequence {
var numbers = generateSequence(2) { it + 1 }
while (true) {
val prime = numbers.first()
yield(prime)
numbers = numbers.drop(1)
filter { it % prime != 0 }
}
}
print(primes.take(10).toList()) // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
```
동작하지 않는 코드
```
val primes: Sequence<Int> = sequence {
var numbers = generateSequence(2) { it + 1 }
var prime: Int
while (true) {
prime = numbers.first()
yield(prime)
numbers = numbers.drop(1)
filter { it % prime != 0 }
}
}
print(primes.take(10).toList()) // [2, 3, 4, 5, 6, 7, 8, 9 ,10 ,11]
```
참고문헌
- Effective Kotlin
반응형
'Computer' 카테고리의 다른 글
Effective Kotlin - Minimize elements visibility (0) | 2021.10.14 |
---|---|
Effective Kotlin - Respect the contract of compareTo (0) | 2021.10.07 |
Effective Kotlin - Data Modifer (0) | 2021.09.30 |
Effective Kotlin - Properties should represent state, not behavior (0) | 2021.08.19 |
[Unity] KaKao Plugin 만들기 (0) | 2017.02.24 |