Hello, Android!
함수의 매개변수 본문
코틀린에서 함수의 매개변수는 디폴트 값을 설정할수 있다
예를들어 매일매일 쓴 돈을 기록하는 가계부 함수가 있다
그런데 돈을 하루도 안쓴 날이 있다면 함수 호출시 두번째 인자에 0을 넣어주면 된다
하지만 코틀린에서는 함수의 특정 매개변수에 디폴트값을 설정할수 있다
함수 선언시 매개변수에 = 를 이용하여 디폴트값을 정해주면 된다
위와같이 사용하게 되면 두번째 호출시에는 두번째 인자를 생략했으니
money함수의 매개변수 money에 디폴트로 지정한 0이 들어가게 된다
만약 위와같이 money함수의 모든 매개변수에 디폴트값을 정해주면
호출시에 인자를 아예 안넣어도 디폴트값으로 함수를 실행하게 된다
또한 함수 호출시 매개변수의 이름으로 명시적으로 호출할수도 있다
매개변수이름을 명시하지 않으면 함수의 매개변수 위치를 맞춰야하는데
명시하는 경우 위와같이 순서를 바꿔서 호출할수도 있다
또한 코틀린에서 함수의 매개변수에 가변인자를 사용할수도 있다
vararg를 이용하면 위와 같이 가변인자를 사용할수 있다
한가지 타입으로만 사용이 가능하며 하나의 변수에 모든 값이 들어오기 때문에
배열로 사용하거나 사진과 같이 반복문으로 값을 하나씩 꺼내서 사용이 가능하다
그리고 일반 매개변수와 함께 사용하는것도 가능하다
다만 이렇게 일반 매개변수와 가변 매개변수를 함께 사용할 경우
항상 가변 매개변수를 가장 마지막에 선언해야 한다
왜냐하면 가변 매개변수 뒤에 일반 매개변수를 선언하면
컴파일러가 가변 매개변수의 시작과 끝을 알수없다
그러니 가변 매개변수를 사용하는 경우 항상 맨 마지막에 선언해야 한다