안녕하세요? codingTrip입니다.
오늘은 "코틀린 프로그래밍 1/2(함수편)"
2단원 함수형 프로그래밍이란?
3장. 마법의 요술상자, 함수의 기본
3-1 함수를 선언하고 호출해보기 (1)
시작하겠습니다!
👓 함수란
▷ 함수의 선언
이번 단원부터는 코틀린의 가장 중요한 특징 중 하나인
함수형 프로그래밍에 대해 이야기해보겠습니다.
함수란 무엇일까요?
함수는 특정 기능을 하는 어떤 박스를 연상해 볼 수 있습니다.
어떤 특정 내용물을 입력하면 출력을 통해 그 결과를 가져올 수 있습니다.
예를 들어, a와 b라는 값을 넣었을 뿐인데 a+b가 되어 result r이 나오는 것이죠.
물론 result(결괏값)없이 print만 하는 경우도 있습니다.
함수를 사용할 때는
fun이라는 키워드를 사용합니다.
fun main()함수는 함수의 시작점을 표시합니다.
} 중괄호 끝은 프로그램의 종료를 의미합니다.
fun 함수명(필요한 매개변수)
매개변수 뒤에는 원하는 데이터타입의 자료형을 넣어줘야 합니다.
: 콜론 옆에는 반환 타입을 넣어줍니다.
그리고 함수가 필요로 하는 내용물의 설계를 합니다.
만약 return 값이 있으면 return이라는 키워드를 사용하여 반환할 수 있습니다.
반환값의 자료형은 필요에 따라 사용합니다.
만약 어떤 특정 자료형을 반환하지 않으면 이 반환값의 자료형은 필요가 없습니다.
[] 대괄호 부분은 생략 가능하다는 의미입니다.
이런 경우에는 코틀린은 unit을 사용합니다.
자바의 void와 동일하다고 볼 수 있습니다.
자바의 void의 경우에는 반환되는 자료형이 아예 없습니다.
사실 unit은 unit이라는 것을 반환시켜줍니다.
반환값이 없음을 나타내는 것이라고 보시면 됩니다.
🔎 함수를 간략하게 표현하기
▷ 일반적인 함수의 모습
위의 사진에서 볼 수 있는 식이 일반적인 함수의 모습니다.
코틀린은 이런 함수를 만약 return문이 하나인 경우에는
더 간략하게 표현할 수 있습니다.
▷ 간략화된 함수
일단 return이라는 키워드를 생략하고,
= 등호를 사용해서 위와 같이 식을 배치하면 아까와 같은 의미의 식이 됩니다.
▷ 반환 자료형 생략
사실 : Int 부분은 이미 a, b가 Int형이므로
자료형 추론이 가능하기 때문에 생략가능합니다.
그래서 a+b의 결과물을 return할 수 있습니다.
💻 실습하기
src폴더에 Alt+Insert를 하여 Package를 만듭니다.
Package명은 chap03.section01로 합니다.
Alt+Insert한 뒤 코틀린 파일을 만듭니다.
파일명은 SumFunc로 합니다.
package chap03.section01
fun sum(a:Int,b:Int): Int {
return a+b
}//최상위 함수
fun main(){//최상위(Top-level)함수
val result1 = sum(2,3)
println(result1)
}
main과 sum함수는 모두 최상위 함수입니다.
여러분이 원하는 만큼 매개변수의 수를 정해서 해당 데이터타입을 지정해주면 됩니다.
만약 반환 타입이 안 적혀져 있으면 타입 미스매치입니다.
꼭 Int형으로 반환값을 써줘야 합니다.
Shift+Alt+F10하고 2번을 눌러 실행합니다.
a+b는 2+3이므로 결과값은 5가 나옵니다.
최상위 함수의 특징은 sum이라는 이름은
main의 위 혹은 아래에 두더라도 해당 이름을 main 안에서 사용할 수 있습니다.
sum이라는 함수를 Ctrl+X로 잘라내기해서
main함수 안에 넣어도 되는데
sum이라는 함수의 이름을 사용하기 전에
위에 정의되어있으면 문제가 없지만
정의가 되기 전에 sum이라는 함수를 사용하면 문제가 생깁니다.
sum이라는 함수가 main안에 있으면 지역함수가 됩니다.
지역함수는 특정 지역 내에서만 존재하는 함수입니다.
중괄호 {} 내에서만 존재하는 함수이지요.
위와 같은 경우에는 함수를 실행할 수 없습니다.
일단 코틀린은 sum이라는 함수의 이름을 모릅니다.
그래서 지역함수는 반드시 이 앞쪽에 선언해야 합니다.
정리
최상위 함수 Top-level은 어느 위치든지 상관없지만
지역 함수는 그 위치가 중요하다.
오늘은 함수형 프로그래밍
첫 번째 시간이었는데요.
코틀린에서는 저렇게까지 간략하게 함수를
표현할 수 있다는 게 놀라웠습니다.
선생님께서 자바의 경우와 코틀린의 경우를 비교해주시고,
그 차이점까지 설명해주신 점이 좋았습니다.
그리고 중간에 자막으로 정리하신 점도 좋았습니다.
이제부터 본격적으로 코틀린에 대해 배우게 되는 것 같아
두근두근 하네요.
그럼 다음 시간에 만나요!
'CODING > 강의노트-부스트코스-코틀린' 카테고리의 다른 글
[부스트코스]📱코틀린 3-2 함수를 활용한 예제 만들기 (0) | 2021.02.16 |
---|---|
[부스트코스]📱코틀린 3-1 함수를 선언하고 호출해 보기 (2) (0) | 2021.02.06 |
[부스트코스]📱코틀린 2-4 연산자를 조합해 다양한 식 만들기 (2) 비트연산자 (0) | 2021.02.04 |
[부스트코스]📱코틀린 2-4 연산자를 조합해 다양한 식 만들기 (1) 기본연산자 (0) | 2021.01.29 |
[부스트코스]📱코틀린 2-3 검사와 자료형을 변환해보기 (0) | 2021.01.28 |