함수로 보는 코틀린
fun main(args: Array<String>){
priintln("Hello, world!")
}
- 발견할 수 있는 특징
- 함수를 선언할 때 →
fun
키워드 사용 - 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다.
- 함수를 최상위 수준에 정의 가능
- 꼭 클래스 안에 함수를 넣어야 할 필요 X
- 배열도 일반적인 클래스와 동일
- 코틀린에서는 자바와 달리 배열 처리를 위한 문법이 따로 존재 X
- 표준 출력 :
println
사용- 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용가능하게 해주는
wrapper
제공
- 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용가능하게 해주는
- 세미콜론을 붙이지 않아도 된다.
- 함수를 선언할 때 →
함수
fun max(a: Int, b: Int) : Int {
return if (a > b) a else b
}
- 함수 선언은
fun
키워드로 시작 - 그 다음 함수 이름 사용
- 함수 이름 뒤에는 괄호와 그 안에 파라미터 목록
- 함수의 반환 타입은 괄호 다음
- 괄호와 반환 타입 사이틀 콜론으로 구분
✨문과 식의 구분
- 식
- 값을 만들어 내며 다른 식의 하위 요소로 계산에 참여 가능
- 문
- 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소
- 코틀린에서는 루프를 제외한 대부분의 제어 구조가 식
- 반면, 대입문은 코틀린에서 문으로 변경됨
식이 본문인 함수
fun max(a: Int, b: Int) : Int = if (a > b) a else b
- 함수의 반환 타입도 생략 가능
- 식이 본문인 함수인 경우 컴파일러가 함수 본문 식을 분석
- 식의 결과 타입을 함수 반환 타입으로 정해줌
- 이것이 바로 타입추론!!!
변수
- 변수 선언은 정적 선언이다.
- 하지만 타입추론이 있기 때문에 타입 선언을 생략가능
- 타입 명시는 변수 뒤에 콜론을 넣고 선언한다.
변경 가능 vs 변경 불가능
- val → 변경 불가능한 참조를 저장하는 변수
- 초기화 후에 재대입이 불가능
- 자바 기준 final 변수
- var → 변경 가능한 참조
- 변수의 값은 계속 바뀔 수 있음
- 자바 기준 일반 변수
- 기본적으로 모든 변수를 val 키워드를 사용해 불변 변수로 선언하고 나중에 꼭 필요할 때에만 var로 변경
- val 참조 자체는 불변이지만 그 참조가 가리키는 객체 내부 값은 변경 가능!!!
- var 키워드를 사용하면 변수의 값을 변경할 수 있지만 변수의 타입은 고정!!
문자열 템플릿
fun main(args: Array<String>){
val name = if (args.size > 0) args[0] else "Kotlin"
println("Hello, $name!")
}
- 문자열 템플릿
- 변수를 문자열 안에 사용 가능하도록 하는 기능
- 문자열 리터럴이 필요한 곳에 변수를 넣고 변수 앞에
$
를 추가 - 복잡한 식을 문자열 템플릿으로 이용하고 싶으면 중괄호로 묶어주면 된다.
✨ 문자열 템플릿 뒤에 바로 한글을 지정할 경우 unresolved reference 가능성이 있다.
- 일반 변수를 문자열 템플릿안에 사용하더라도 중괄호 안에 넣는 것을 습관화하자!
😃 성찰
- 기초의 중요성
- 변수, 함수는 모든 언어에서 기본중의 기본이기 때문에 굳이 공부해야겠다는 인식을 못함
- 이번 기회에 공부를 해보니 식과 문의 차이와 코틀린이라는 언어에서는 이들이 어떻게 적용되는지를 알게 되었음
- 안드로이드 개발 시 제어문을 항상 자바와 같이 사용하고 안드로이드 스튜디오에서 추천하는 구조를 매우 불편하게 여겼는데 이해할 수 있는 좋은 기회가 되었다.
참조
KOTLIN IN ACTION
'코틀린' 카테고리의 다른 글
Iteration (0) | 2023.01.26 |
---|---|
선택 표현과 처리 (0) | 2023.01.25 |
클래스와 프로퍼티 (0) | 2023.01.25 |
What is Kotlin (0) | 2023.01.07 |
🔥코틀린 시작 (0) | 2023.01.06 |