오늘 공부한 내용은 람다식과 일급객체 , 고차함수를 공부했습니다.
제가 배워본 언어가 파이썬 , 자바 ,c , jsp,css,html 정도가 있는데
깊게 파고들고 있는 부분은 파이썬 뿐이고 나머지 언어는 학교 과정에 따라서 뒤쳐지지 않을 정도로만 익혔습니다.
그래서 그런지 코틀린을 공부하면서 람다식이나 일급객체, 고차함수라는 것들이 생소하게 느껴지더라고요 .
혼자 공부하는 만큼 블로그에 정리를 해가면서 더 머릿 속 깊이 지식을 담으려고 합니다.
람다식
람다식:이름이 없는 함수 형태 ex){x,y->x+y}
위에서 처럼 변수에 담을 수도 있습니다.
저는 많이 생소하더라고요 . 파이썬에서는 사용이 가능한 스타일인 지는 잘 모르겠는데 제 기준에서는 사용하는 것을 못 봤거든요..
어쨋든 함수를 바로 변수처럼 만들 수도 있고 변수에 담아서 사용도 가능하고 익숙해지면 유용하게 사용할 수 있을 것 같아요..!
일급객체
위 람다식도 일급 객체로 일급 객체가 되기 위해서는 3가지 특성을 만족해야합니다.
1. 함수의 인자로 전달할 수 있다.
2. 함수의 반환 값에 사용할 수 있다.
3. 변수에 담을 수 있다.
고차함수
고차 함수 : 다른 함수를 인자로 사용하거나 함수를 결괏 값으로 반환하는 함수
-> 일급 객체나 함수를 서로 주고 받을 수 있는 함수입니다.
ex)
이렇게 다른 함수를 인자로 사용하거나 함수를 결괏 값으로 반환하는 함수입니다.
쓰다보면 익숙해지겠죠 이것들도..?
람다식 자료형 추론
람다식에서 자료형이 추론이 가능한 형태라면 생략이 가능합니다.
고차함수 파트에서 2번째 사진에
val out:()->Unit ={println("Hello World!")} 로 쓰면 자료형을 명시적으로 나타내주며 사용하는 것이고
val out = {println("Hello World!")} 로 써도 자료형이 Unit임을 추론이 가능한 형태이므로 생략이 가능합니다.
하지만 val multi={x,y->x*y} 같이 추론이 불가능하고 선언 자료형과 람다식 매개변수 자료형을 모두 생략을 하면
오류가 나게됩니다.
함수형 프로그래밍
순수 함수를 작성하여 프로그램의 부작용을 줄이는 프로그래밍 기법
순수 함수: 함수가 같은 인자에 대하여 항상 같은 결괏 값을 반환하고 함수 외부의 어떤 형태도 바꾸지 않는 함수입니다.
함수형 프로그래밍의 특징
1. 순수 함수를 사용해야 한다.
2. 람다식을 사용할 수 있다.
3. 고차 함수를 사용할 수 있다.
이렇게 오늘 공부한 내용들이고 확실히 익숙하지 않은 상태에서 이론적으로 접하니까 어렵게 느껴지네요.
막상 프로그래밍을 진행하면서 계속 사용하다보면 쉽게 사용할 수 있지 않을까 생각합니다!!
'공부 > Kotlin' 카테고리의 다른 글
안드로이드 스튜디오) 구글 개발자 교육을 통한 공부 첫 번째 (0) | 2022.07.19 |
---|---|
코틀린 공부) 실습 환경 구축하기 두 번째 - intellij 설치 (0) | 2022.06.24 |
코틀린 공부) 실습 환경 구축하기 첫 번째 - 자바설치 (0) | 2022.06.24 |
최근댓글