[Kotlin] Functions

Default Parameter Values and Named Arguments

sonnie
lucky-sonnie
6 min readOct 16, 2020

--

  1. String 파라미터를 받고 Unit(다시말해 리턴값이 없는- void)을 리턴하는 simple function
  2. 두번째 파라미터를 받는 펑션. 두번째 파라미터는 필수가 아니고, 디폴트 값이 info임. 리턴타입이 생략되었기 때문에 사실은 Unit
  3. Integer를 리턴하는 펑션
  4. 정수를 리턴하는 단일 표현식 함수
  5. argument hello를 넘겨 첫번째 함수를 호출한다
  6. 파라미터가 2개인 펑션을 호출한다. (argument 2개 다 넘김)
  7. 6번과 같은 펑션을 호출하지만 두번째 파라미터는 생략했다. default value 는 info가 사용되었다.
  8. 이름이 있는 인수를 사용하고 인수 순서를 변경하여 동일한 함수를 호출한다.

Infix Function (중위 함수)

단일 매개 변수가있는 멤버 함수 및 확장은 중위 함수로 변환 될 수 있습니다.

Tuples.kt 안에 정의되어 있는 Pair의 구조
  1. int에 중위 확장 함수를 정의합니다.
  2. 중위 함수를 호출합니다.
  3. 기존 라이브러리에서 중위함수 to를 호출해 Pair를 만든다.
  4. onto라고 부르는 내가 직접 만든 to ( onto == to)
  5. 중위 표기법은 멤버 함수 (메소드)에서도 작동합니다.
  6. 포함하는 클래스가 첫번째 파라미터가 됩니다.

Operator Functions (연산자 펑션)

특정 기능은 연산자로 “업그레이드” 되어 해당 오퍼레이터 기호로 호출 할 수 있다.

  1. 연산 제어자 (클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드)
  2. times()의 연산 심볼은 * 이다. 그래서 2 * "bye"를 사용해 함수를 호출할 수 있다.
  3. 연산자 기능을 사용하면 쉽게 문자열 범위에 접근할 수 있다.
  4. get() 연산자는 브라켓 접근 구문을 가능하게 한다.

Functions with vararg Parameters

  1. vararg 제어자는 한개의 파라미터를 vararg로 바꾼다.
  2. 이를 통해 임의의 수의 String arguments 로 printAll을 호출할 수 있다.
  3. 이름이 있는 파라미터들 덕분에 vararg ene뒤에 동일한 유형의 다른 파라미터를 추가할 수도 있다. 자바에서는 값을 전달할 방법이 없기 때문에 이렇게 쓸 수 없다.
  4. 이름이 있는 파라미터를 사용해 vararg와 별도로 접두사 값을 설정할 수 있다.
  5. 런타임에서 vararg는 배열일 뿐이다. vararg 매개변수로 전달하려면 Array<String>대신 *entries(String의 vararg)를 전달할 수 있는 특수 스프레드 연산자 *를 사용해야 한다.

출처

https://kotlinlang.org/docs/reference/functions.html#infix-notation

--

--