티스토리 뷰
프로그래밍 언어의 가장 기본인 함수와 변수 선언 방법에 대해 알아보자.
#> 함수선언
코틀린에서 함수를 선언하는 방식은 Java와는 다르게 아래와 같은 규칙을 가지고 있습니다.
- 함수를 선언할 때 fun 이라는 키워드를 사용한다.
- 함수에 Parameter가 없는 경우에는 빈 괄호를 입력한다.
- 함수의 Parameter는 이름을 먼저 명시한 뒤, 콜론(:) 뒤에 타입을 명시한다.
- 함수의 Parameter가 2개 이상인 경우 콤마(,)로 구분한다.
- 리턴 타입은 함수이름 뒤에 명시한다.
위 규칙을 실제로 적용하면서 간단한 함수를 선언해보도록 하겠습니다.
fun main() {
println("main function")
}
위 함수는 이전 포스팅에서 살펴봤던 Hello World를 출력하는 형태를 가지고 있습니다. fun 키워드를 통해 함수임을 명시하고, 매개변수가 없으므로 빈 활호를 입력합니다. 그리고 함수 블록에는 println 함수를 통해 문자열을 출력합니다.
하지만 실제 개발시에는 함수에 특정한 값을 입력해 의미있는 값을 리턴받곤 합니다. 여기 두 값을 입력받아 더한 뒤 결과를 리턴하는 함수가 있습니다.
fun add(a: Int, b: Int): Int {
return a + b
}
a와 b라는 Int 타입의 매개변수를 입력받아 Int 타입의 값을 리턴하는 형태를 가지고 있습니다. 그런데, 이 함수의 경우 본문 블럭이 a+b라는 식 하나로만 이루어져 있습니다. 이런 함수를 식이 본문인 함수 라고 칭하며, 아래와 같이 간결하게 표현이 가능합니다.
fun add(a: Int, b: Int): Int = a + b
여기서 우리는 Kotlin을 더 잘 이해하고 있다는 것을 보여주기 위해 반환 타입을 생략해 더 간결하게 코드를 작성할 수 있습니다. 바로 이렇게요.
fun add(a: Int, b: Int) = a + b
이런 형태의 표현이 가능한 이유는 컴파일러가 함수의 식을 분석해 결과 값의 타입을 자동으로 정해주기 때문입니다. 이런 기능을 타입 추론(Type Inference)이라고 부릅니다.
#> 변수 선언
코틀린에서 변수를 선언할 때는 2가지 키워드 중 하나를 사용합니다.
- val - Java에서 final 변수와 같은 의미를 가집니다. 변수가 한 번 초기화 되고나면 값의 수정이 불가능합니다.
- var - Java의 일반 변수에 해당합니다.
위 키워드 중 하나를 반드시 맨 앞에 명시해야 하며 타입은 뒤에 명시하거나 생략할 수 있습니다. 여기서 생략이 가능한 이유는 함수선언 섹션에서 언급했던 타입 추론이 가능하기 때문입니다.
// 타입 추론이 가능하므로 변수 선언 시 타입을 생략하는 경우
val nameInf = "불타는 개발자 디빌리"
var countInf = 0
var rating = 9.14e3
// 변수 타입을 명시하는 경우
val name: String = "내 이름은 String"
var count: Int = 0
var rating: Double = 9.14e3
단, 변수 선언과 동시에 초기화를 하지 않는 경우에는 반드시 타입을 명시해야 합니다.
#> 마치며
오늘은 가장 기초적인 부분인 함수와 변수 선언에 대해 다뤄보았습니다. 기초적인 내용부터 탄탄히 다진 뒤 Kotlin을 코틀린답게 쓸 수 있게 해주는 마법같은 장치들과 기능들에 대해 포스팅 하도록 하겠습니다.
끝까지 글 읽어주셔서 감사합니다. 좋은하루 되십시오.
코틀린 기초 시리즈는 도서 『Kotlin in Action, Svetlana Isakova』을 참고해 작성되었습니다.
광고 클릭, 하트, 댓글은 필자에게 큰 힘이 됩니다! |
'Programming > Kotlin' 카테고리의 다른 글
Kotlin 기초강의#5 :: 프로퍼티(Property)와 뒷받침하는 필드(Backing Field) (2) | 2020.09.15 |
---|---|
Kotlin 기초강의#4 :: 코틀린 클래스의 선언과 생성자 (3) | 2020.09.05 |
Kotlin 기초강의#3 :: 문자열 템플릿 (String Template) 파헤치기 (2) | 2020.03.07 |
Kotlin 기초강의#1 :: 코틀린 실습을 위한 기반마련 > Hello World 출력 예제 (Web, IntelliJ, REPL) (0) | 2019.12.25 |
Kotlin :: Prologue / 코틀린을 써야하는 이유 (0) | 2019.11.19 |
- Total
- Today
- Yesterday
- 안드로이드 바텀시트
- 안스 템플릿
- 코딩
- kotlin 기초
- Programming
- 코틀린
- 프로젝트오일러
- 영어회화
- 코틀린 기초강의
- 안드로이드 스튜디오
- 영어발음
- 개발자
- Kotlin
- compose bottomsheet
- 컴포즈 바텀시트
- Java
- android studio
- 프로그래밍
- 런탭
- php
- 안드로이드 스튜디오 라이브 템플릿
- 안드로이드 컴포즈
- 안드로이드
- LiveTemplate
- live template
- 코틀린 기초
- 문제풀이
- 코딩문제
- Android
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |