More actions
No edit summary |
imported>mayleaf No edit summary |
||
| Line 28: | Line 28: | ||
* p61 | * p61 | ||
** 함수를 최상위 수준에 정의할 수 있다. 꼭 클래스 안에 함수를 넣어야 할 필요가 없다. | ** 함수를 최상위 수준에 정의할 수 있다. 꼭 클래스 안에 함수를 넣어야 할 필요가 없다. | ||
** System.out.println 대신에 println이라고 쓴다. | |||
*** 이 부분 마음에 든다. 자바에서의 표준 입출력 함수는 최소지식원칙을 어기게 한다. 그러나 이렇게 변경된 println은 어느 객체에서 호출된 함수인지 노출되지 않기 때문에 그러한 문제를 마주치지 않게 해준다. 코틀린.. 벌써부터 재미있는데..? ㅋㅋㅋ - [[정우현]] | |||
* p62 | * p62 | ||
** 자바에서는 모든 제어 구조가 문인 반면 코틀린에서는 루프를 제외한 대부분의 제어구조가 식이다. | ** 자바에서는 모든 제어 구조가 문인 반면 코틀린에서는 루프를 제외한 대부분의 제어구조가 식이다. | ||
Revision as of 16:22, 30 March 2022
코틀린 소개
- p35
- 코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시한다.
- p37
- 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다.
- p38 ~ p39
- 코틀린은 정적 타입 지정 언어다. 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메서드를 사용할 떄마다 컴파일러가 타입을 검증해준다는 뜻이다.
- 대부분의 경우 코틀린 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있다.(타입 추론 기능)
- p41
- 불변 데이터 구조를 사용하고 순수 함수를 그 데이터 구조에 적용한다면 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경할 수 없다. 따라서 복잡한 동기화를 사용하지 않아도 된다. (!!)
- p46
- p49
- 게터, 세터, 생성자 파라미터를 필드에 대입하기 위한 로직 등 자바에 존재하는 여러 가지 번거로운 준비 코드를 코틀린은 묵시적으로 제공한다.
- 인터페이스 제공 vs 코드가 길어지는 번거로운 준비 / 둘 다 각각 지향하는 방향이 다른 것 같다. - 김은솔
- p51
- 어떤 객체의 타입을 검사했고 그 객체가 그 타입에 속한다면 해당 타입의 메서드나 필드 등의 멤버를 별도의 캐스트 없이 사용할 수 있다.
- p53
- 자바와 마찬가지로 코틀린도 컴파일 언어다.
코틀린 기초
- p60
- 함수를 선언할 때 fun 키워드를 사용한다. 실제로도 코틀린 프로그래밍은 수많은 fun을 만드는 재미있는 (...) 일이다!
- p61
- 함수를 최상위 수준에 정의할 수 있다. 꼭 클래스 안에 함수를 넣어야 할 필요가 없다.
- System.out.println 대신에 println이라고 쓴다.
- 이 부분 마음에 든다. 자바에서의 표준 입출력 함수는 최소지식원칙을 어기게 한다. 그러나 이렇게 변경된 println은 어느 객체에서 호출된 함수인지 노출되지 않기 때문에 그러한 문제를 마주치지 않게 해준다. 코틀린.. 벌써부터 재미있는데..? ㅋㅋㅋ - 정우현
- p62
- 자바에서는 모든 제어 구조가 문인 반면 코틀린에서는 루프를 제외한 대부분의 제어구조가 식이다.
- p65
- 초기화 식을 사용하지 않고 변수를 선언하려면 변수 타입을 반드시 명시해야 한다.
- p66
- p71
- 클래스에서 프로퍼티를 선언할 때는 앞에서 살펴본 변수를 선언하는 방법과 마찬가지로 val이나 var를 사용한다. (val이 읽기 전용, var이 변경 가능)
- 엄청난 기능이다 ㅋㅋ - 김은솔
- 클래스에서 프로퍼티를 선언할 때는 앞에서 살펴본 변수를 선언하는 방법과 마찬가지로 val이나 var를 사용한다. (val이 읽기 전용, var이 변경 가능)
- p72
- 이름이 is로 시작하는 프로퍼티의 게터에는 get이 붙지 않고 원래 이름을 그대로 사용하며, 세터에는 is를 set으로 바꾼 이름을 사용한다.
- 따로 이유가 있지는 않은 것 같다. - 김은솔
- p75
- 코틀린에서는 클래스 임포트와 함수 임포트에 차이가 없으며, 모든 선언을 import 키워드로 가져올 수 있다.
- p76
- 코틀린에서는 여러 클래스를 한 파일에 넣을 수 있고, 파일의 이름도 마음대로 정할 수 있다. 코틀린에서는 디스크상의 어느 디렉터리에 소스코드 파일을 위치시키든 관계없다.
- 하지만 여러 클래스를 한 파일에 넣는 것을 주저해서는 안 된다.
- 자바 방식이랑 다른 점이 꽤 있는 듯 - 김은솔
- p79
- (when은) 자바와 달리 각 분기의 끝에 break를 넣지 않아도 된다.
- 개인적으로 강력한 기능이라고 생각함 - 김은솔
- p82
- when에 아무 인자도 없으려면 각 분기의 조건이 boolean 결과를 계산하는 식이어야 한다.