비트연산자
4.shl(bits) = // 4를 표현하는 비트를 bits만큼 왼쪽으로 이동(부호존재)
7.shr(bits) = // 7을 표현하는 비트를 bits만큼 오른쪽으로 이동(부호존재)
12.ushr(bits) = // 12를 표현하는 비트를 bits만큼 오른쪽으로 이동(부호 없음)
9.and(bits) 9를 표현하는 비트와 bitS를 논리곱
9.or(bits) " 논리합
9.xor(bits) " 베타적 연산
78.inv() 78을표현하는 비트를 모두 뒤집음
함수형 프로그래밍중 메개변수에 관한 내용
fun add(name: String, email: String = "default") {
print(email)
}
eamil 의 메개변수값을 "default" 로 지정해주면서 인자를 받아도되고 안받아도 되는 상태로 만들수있음
다양한 인자의 개수를 받을때는
fun add(vararg count: Int) {
for (num in count) {
print(num)
}
}
add로 넘겨지는 인자의 개수를 vararg 로 지정해주면 어떤 인자값이 들어와도 인자의 배열만큼 사용가능
fun main() {
println(highFunc({ x, y -> x + y }, 10, 20))
}
위와 같은 식을 수행하기 위한 인자를 받기위해서는
fun highFunc(sum: (Int, Int) -> Int, a: Int, b: Int): Int = sum(a, b)
highFunc 함수에 sum인자에 두개의 변수를 집어넣을수 있고, 이를 main에서 활용이 가능하다.
callByValue 라는 값에 의한 호출이란 뜻의 코틀린 언어에서는 함수가 또다른 함수의 인자로 전달되는 경우
즉
callByValue(sum())
과 같은 경우로 sum이라는 함수가 전달될경우를 말한다.
이 상황에서는 sum 이라는 함수가 즉시 호출되어 값을 전달하게된다.