kotlin에서는 properties 사용가능 properties 자바에서 사용하는 것과 유사 변수를 좀더 강력하게 관리가능 get(),set()함수로 읽고 쓰기 관리 자기자신을 가리키는 예약어는 field
Android/Kotlin
[lateinit] lateinit 예약어는 클래스에서 초기화없이 [변수:형] 만으로 선언가능 var 만 사용가능 변수형이 nullable 아니더라도 컴파일 가능 primitive 형은 불가능 [lazy] 코드 어디선가 사용할 때, 1회 초기화 실행된다(안드로이드 위젯 초기화시 유리) val로 선언 primitive 형도 가능 초기화 실행 시, 일련의 코딩 가능
수학에서 Infix는 증위표기법으로 사칙연산자(+,-,*,/)와 같이 좌측과 우측의 값이 존재하는 연산자 연사자를 대처하는 메소드 표기법 좌측은 객체 우측은 1개의 값 개발 시 서로 협의하에 쓰는 것이 좋다
수학자 하스켈 커링과 관련된 수학적방법 다중 인자를 받는 함수를 단일인자를 받는 함수로 만드는 함수 다중인자를 한개의 인자를 받는 함수로 사용 데이터 형 : (인자) -> (인자).. -> 리턴값 함수정의 : 함수(a) : 리턴값 = 함수(b) = 함수(c) : 리턴값{} 사용법 : 일반함수 (a,b,c) 함수 (a)(b)(c)
closure는 함수형 프로그래밍에서 매우 중요한 개념이다 클로저는 자바스크립트 사용자들에게 친숙한 방법 외부함수의 변수를 내부함수에서 그대로 기억하고 사용할 수 있다 오래된 언어인 파스칼의 내부함수 사용법과 유사 마치 객체지향에서 사용하는 객체처럼 함수를 사용할 수 있다.
함수형 프로그래밍을 지원하는 중요확장함수들 .let()다음 결과를 {}안에 넘긴다 ->를 사용할 경우 변수명 지정이 가능 .apply{}다음 객체를(생성과 동시) 결과를 {}안에 넘긴다. 파스칼의 with문과 유사 {}안에서 코딩한 객체의 결과를 넘긴다 .run()는 {}안의 실행 결과값을 최종값으로 넘긴다 확장함수 이미정의된 클래스에 맴버함수를 정의 실행함과 동시에 객체정보 공유 가능 객체의 맴버들은 val(읽기전용)로 설정 파라미터로 함수를 넘기면 객체설정 및 이벤트 핸들러를 구현하기 편해짐
함수형 프로그래밍이 추구하는 것 함수나 객체의 mutable(변함) immutable(불변)을 관리하여 side effect를 줄이고자 함. 수학적인 사고로 코드를 간결하게 하고자 함 변수나 객체를 여기저기서 건들지 말자 (실행된 함수의 결과는 동일해야함) 순수함수 결과가 같은 함수, 외부 래퍼런스를 사용하지 않는 함수 입력된 값의 결과는 언제나 같아야함 전역적 참고 x 입력받아 처리 변수,객체,함수 모두 고차함수 함수형 변수를 입력받고 함수형 변수를 리턴하는 함수 상태 = 조건문 없는 순차적인 프로그래밍을 위해 함수를 받고 넘겨주는 구조 1등시민 일종의 정책적인 단어, 함수형 언어에서 함수가 가져야할 중요한 기능에 대해서 강조한 것 1. 변수나 데이터 구조안에 담을 수 있다 2. 파라미터로 전달할 수 ..