kotlin 공부일기 -2

김민진·2021년 4월 13일
0

kotlin

목록 보기
2/5

kotlin의 함수

코틀린의 함수는 기존에 보던 방식과는 매우 다르다.

fun 식별자():반환타입{
///내용
}

보통 내가 알고 있는 함수는

void method() {
///내용
}

인데..
fun이라는 예약어를 써서 함수라는걸 뜻하나 보다.
코틀린은 c계열의 언어와는 다르게 코드의 위치가 중요하지 않는거 같다.

함수를 간단히 사용할 수 도 있다.

fun function():Double{
return 3.0+7
}

형태의 함수를

fun function():Double= 3.0+7

로 사용할 수 도 있고

fun function() = 3.0+7

로 사용할 수 도 있다.

이방식은 뭐 현업에 가서 개발자들과 상의해서 맞춰서 사용하겠지??

매개변수(parameter)와 인수(argument)

매개변수는

fun function(parameter:Type):returnType
=>
fun function(num:Int):Double

에서 num이 매개변수가 되는 것이고

fun function(num:Int):Double{
return num*1.8+32
}

여기에 num을 통해 저장되는 표현식을 인수 라고 한다.

fun funtcion(a:Int,b:Int):Double

같은 방식으로 여러개의 매개변수가 들어올 수 있다.

Unit타입
흔히 알고 있는 void 를 코틀린에서는 Unit타입이라고 쓰는거 같다..

책에서는 Unit은 void에 대응되는개념이지만 같지는 않다고 한다.
java의 Void클래스와 비슷한 개념이라고한다.
return을 생략한다고 해도 암묵적으로 Unit타입을 리턴하도록 되어져 있고
Unit객체는 싱글톤 이므로 매번 객체를 생성하지 않는다고 한다...

디폴트 인수

매개변수에는 디폴트 값을 지정할 수 있다.
이거는 좋은거 같다. 가끔 기본값을 지정해 줄 수 없는 언어도 있어서..

fun function(a:Int=0,b:Int=0):Double{
///
}

가변인수

가변인수는 처음들어보는 말이다.
책에서는
' N개의 인수를 받는 함수를 만들고 싶으면 어떻게 해야 할까?'
라는데 N개의 인수면 리스트나 배열 이 아닌건가??

가변인수를 받으려면 vararg 라는 예약어/키워드 를 붙여야 된다고 한다.

fun function(vararg numbers:Int):Int{
val count = numbers.size;
var i = 0 var sum=0;
while(i<count){
sum+=numbers[i]
i+=1
}
return sum;
}

fun main(args:Array<String>{
function(1,2,3,4,5)
 function(1,2,3)
}

이런식으로 사용을 한다.

매개변수가 많으면 좋지 않다는 거라고 어디서 본거 같은데..
저렇게 하면 매개변수는 많지 않지만 인수는 많아지는건가??

저렇게 쓰이기는 하는건지 궁금하다

profile
dart,c#,java 개발자! 잡다하게 해서 문제될게 없다!

0개의 댓글