Uknow's Lab.
article thumbnail

 

 

1. Infix?

infix... 뭔가 많이 들어본 단어죠?

prefix, infix, postfix... 전위 표기법, 중위 표기법, 후위 표기법을 떠올리셨나요? 아주 훌륭합니다!

 

A + B라는 식을 표기할 때,

prefix -> +AB

infix -> A+B

postifx -> AB+

와 같이, 연산자와 피연산자의 위치에 따라 전위(prefix), 중위 (infix), 후위 (postfix)로 나눕니다.

우리가 일상생활에서 자주 쓰는 표기법은 중위(infix)죠?

 

연산자가 중간에 오는 infix와 같이, infix 함수는 두 피연산자 사이 함수가 들어가는 형태입니다.

 

 

2. infix 함수 정의

<kotlin />
infix fun Int.plus(n: Int): Int { return this + n } fun main() { println(5 plus 10) } // 출력 >>> 15

 

infix 함수는 fun 앞에 infix를 붙여 정의할 수 있습니다.

infix fun (객체명).(메소드명)(매개변수) : (return값) : {

   (바디)

}

this 키워드를 통해 객체 자신을 호출할 수 있습니다.

infix 키워드만 추가되었을 뿐, 확장함수와 비슷한 구조죠?

 

 

3. 클래스 앞에서의 infix 함수 정의

<kotlin />
class Test { var n = 1 infix fun plus(plusN: Int): Int { return this.n + plusN } } fun main() { val test = Test() test.n = 123 println(test plus 100) }

 

클래스 안에서 infix 메소드를 정의할 경우,

너무 당연하게도 this는 클래스 자기 자신을 가리킵니다.

따라서, 클래스명은 생략할 수 있습니다.

 

infix 함수는 잘 사용하면 가독성을 꽤 향상시킬 수 있을 것 같습니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.