[Kotllin] return type

youneeo·2023년 12월 26일

기본적으로 함수에는 리턴타입이 있다.
Test.kt

fun (매개변수:타입, 매개변수:타입):리턴타입{
로직작성}

이런식인데 나는 왜 리턴타입이 필요한가? 에 대해서 한번씩은 생각해보기도 했다가도, 금방 까먹어버려서 정리를 못하고있었다.

알기쉬운 예시로 설명하겠다.

fun compositing(device1: Stirng, device2: String):String {
	var device3 = device1 + device2
    
    return device3 
    }

라는 함수가 있다.

compositing 이라는 함수는 device1, device2 라는 String(문자열) 타입의 매개변수를 필요로 하고
리턴타입은 String(문자열) 이다.

즉, 문자열타입으로 리턴(반환)을 한다는 뜻이고 이 함수가 종료되면 문자열타입의 무언가를 뱉는다는소리다.
리턴은 device1이되건 2가되건 3이되건 셋다 문자열 타입이기때문에 무엇을 리턴해도 문법상에 오류는 생기지않는다.

하지만 함수의 특성상 device1,2를 받아서 더하는 변수가 존재하고 변수 device3 역시 문자열타입임을 추론할수있다(코틀린은 추론형이라 알아서 타입(자료형)을 추론해준다!)
따라서 리턴타입(String:문자열) 을 해주게되면 -> return device3 이렇게 표현해줄수있다

근데 이게 말이 이렇지 나는 이말이 이해가 가지않았다 리턴? 반환? 을해주면 뭐가 어떻게 되는건데? 뭐 공중에 떠있나? 뭔말이야? 이생각이 들었다.

이해를 돕기위해서 다음 예시를 추가하겠다.

var specialDevice = compositing("총","칼")

fun device() {

	println("${specialDevice}")

}

(같은 클래스 내에 정의되었다고 가정하고 예시를 썻습니다.)

이렇게 되어있고

fun main() {
	var test = Test() //Test 클래스의 인스턴스를 만듬
    test.device() // test클래스의 인스턴스에 가서.device함수를 호출
}

을 하게되면 device라는 함수는 Test라는 클래스내의 변수 specialDevice (compositing이라는 함수를 담고있는) 를 호출하면서
compositing은 문자열타입의 매개변수 2개를 필요로하는 함수이므로 총,칼이라는 문자열을 받게된다.

device1:총, device2:칼 이라는 문자열을 더하는 로직이 compositing 내에 존재하고 더한 문자열을 리턴(device3) 하게되어있다.

따라서

main 함수가 실행되면서 나오는 결과값은

총칼 < 이라는 문자열이다.

필요성을 문법으로 간단한 예시로 큰틀을 익히면 좋은것같다. 문법 공부가 너무나도 미숙했다고 스스로 생각하기 때문에 짬짬히 문법을 공부하고있다.

이과를 나왔건,문과를 나왔건 간에 이직을 준비하시는 분들이나 논리적으로 이해가 가지않으면 넘어가기 힘든부분중 하나가 문법이다.
나역시 국비지원 학원을 도전하게되면서. 문법을 눈으로만 공부한다던가. 선생님이 써준 코드를 보면서 이해했다고 생각하고 넘어가서 나중에 많이 고생했다(아직도 고생중)

부끄러워도 할수없다. 결국은 다 알고 넘어가야하기때문에 아주 기초적인 부분이라도 다시한번 기록하면서 기초를 채우면서 취업에 뛰어들어야한다고 생각하기 때문에. 부끄러워도 항상
적고 복기해서 내것으로 만들고 넘어가는 마음가짐이 중요한것같다. 뭐라고 쓴지도 모르겠지만 새벽에 생각나는대로 적었다. 혹시 필자가 틀렸거나 궁금한점 있으면 댓글 적어주면 달게 받겠다.

profile
정돈된 공간에서 생각하기를 좋아합니다.

0개의 댓글