operator fun이란 코틀린은 특정한 부호의 연산을 함수로 정의할 수 있는 연산자 오버로딩 기능을 제공한다. 예를 들어 plus 라는 함수를 operator fun으로 선언하면 + 연산과 같은 효과를 낸다. 예를 들어 다음 Vector 클래스를 살펴보자. data class Vector(val x: Float, val y: Float) { operator fun plus(vector: Vector): Vector { return Vector(this.x + vector.x, this.y + vector.y) } } 이 Vector 클래스는 operator fun plus을 선언하고 있으며, 이 함수는 두 Vector를 더할 때 x 값은 x 값끼리, y 값은 y 값끼리 더해 Vector 객체의 x 값..
함수
JavaScript에서 함수를 작성하는 방식이 다양한 이유 자바스크립트를 표준화하기 위해 만들어진 ECMA Script(ES)는 시간이 지나면서 계속해서 변화해 왔고, 당시의 프로그래밍 패러다임을 반영한 문법을 추가하였다. ES6 이전까지는 함수를 문으로 작성하는 방법과 식으로 작성하는 방법을 지원했고, ES6부터는 함수형 프로그래밍 패러다임에 맞춰 함수형 선언인 화살표 함수 작성을 추가했다. 자 이제 JavaScript에서 함수를 작성하는 방법에 대해 살펴보자. JavaScript 함수를 작성하는 방법 JavaScript는 함수를 작성하기 위해 문으로 작성하는 방식, 식으로 작성하는 방식, 화살표 함수로 작성하는 방식 세가지를 지원한다. JavaScript 함수를 작성하는 방식 1. 문으로 작성하기 2..
목표 문과 식을 구분한다. 문이 본문인 함수와 식이 본문인 함수의 차이를 안다. 문(Statement)과 식(Expression)의 구분 식은 자바에서는 볼 수 없었던 코틀린의 특성이다. 자바의 함수는 문으로 이루어져 있으며, return이라는 키워드를 통해서만 값을 반환할 수 있었다. 문과 식의 차이를 살펴보자. 문(Statement) : 자신을 둘러싼 가장 안쪽 블록의 최상위 요소로 존재하며, 아무런 값을 만들어내지 않는다. 식(Expression) : 값을 만들어 내며, 다른 식의 하위 요소로 계산에 참여한다. *코틀린에서는 루프를 제외한 대부분의 제어 구조가 식이다. 블록(문)이 본문인 함수 본문이 중괄호 {} 로 둘러싸인 함수를 문이 블록이 본문인 함수라 부른다. 특징 블록이 본문인 함수는 타입..