본문 바로가기

Kotlin3

Kotlin in action 7장 연산자 오버로딩과 기타 관례 관례? 여기서 관례(컨벤션)는, 코틀린에서 쓰는 plus, equals, get 같은 함수명을 관례라고 칭한다. 7.1 산술 연산자 오버로딩 자바에서 산술 연산자는 원시(Primitive) 타입과 String에 대해서만 사용할 수 있다. 코틀린에서는 클래스에서 산술 연산자를 인자값을 다르게 해서 새로 정의함으로써 원하는대로 쓸 수 있다. 산술 연산자 오버로딩은 코틀린에서 이미 정의해놓은 연산자(+, *, /, ...)를 내가 만든 클래스에서 해당 함수(.plus(), .times(), ...)의 인자값을 다르게 받으면 그 경우로 새로 만들어 쓸 수 있다는 뜻이다. 다음부터는 코틀린에 어떤 산술 연산자가 있고 어떻게 사용하는지 알아볼 수 있다. 7.1.1 이항 산술 연산 오버로딩 리스트 7.1 plus 연.. 2020. 4. 23.
Kotlin in action 6장 코틀린 타입 시스템 6.1 널 가능성 NullPointerException ? Null 값을 가지고 있는 변수를 사용해서 객체의 필드나 메소드에 접근하려고 하면 발생하는 오류. runtime에 발생하는 exception 입니다. 코틀린에서는 "null이 될 수 있는 타입" 이란 것을 지원함으로써, null에 접근할 때를 가능한한 실행시점에서(runtime) 컴파일 시점으로 옮깁니다. 이것은 null 될 수 있는지 여부를 타입시스템에 추가함으로써 컴파일러가 여러 가지 오류를 컴파일 시 미리 감지하게 한다는 것입니다. 6.1.1 널이 될 수 있는 타입 코틀린의 변수는 기본적으로 null이 될 수 없는 타입입니다. null이 될 수 있는 변수를 인자로 받는 메소드를 호출하는것을 금지합니다. fun strLen(s: String).. 2020. 4. 13.
Kotlin in action 5장 람다로 프로그래밍 람다? 람다 식(lambda expression)? 다른 함수에 넘길 수 있는 작은 코드 조각 →코드 블록을 함수 인자로 넘기기 값처럼 여기저기 전달할 수 있는 동작의 모음 →함수형 언어에서 함수를 직접 다른 함수에 전달하기. +추가 익명클래스로 선언된 구현부를 변수처럼 쓸수 있게 해준다. (변수처럼? 여기저기 넣을수있음) 람다 식을 사용하면 코드가 더 간결해짐. →함수를 선언할 필요가 없고 코드 블록을 직접 함수의 인자로 전달할 수 있다. 예제 -버튼 클릭에 따른 동작 정의하는 경우 클릭 이벤트를 처리하는 리스너를 추가한다. button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { /* 클릭 시.. 2020. 4. 9.