전공과목 정리/모바일소프트웨어

[모바일소프트웨어📱] 코틀린(Kotlin) 문법 (1)

최연재 2024. 9. 16. 23:16

출처 : 코틀린 학습을 위한 링크(1.2 참고), 강의 교안

 

1. 코틀린이란?

1.1 코틀린 언어

- JetBrains에서 개발한 정적 타입의 프로그래밍 언어

- 2017년 구글에서 안드로이드 공식 언어로 지정

- JVM 기반 언어

- 간결한 구문으로 프로그램 작성

- 자바 100% 호환

- 함수형 언어, 람다식, 널 안정성(null safey) 등 최신 언어의 트렌드 지원

- 세미콜론 생략

 

1.2 코틀린 학습을 위한 링크

- Kotlin Programming Language (kotlinlang.org)

 

Kotlin Programming Language

Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google’s preferred language for Android app development.

kotlinlang.org

- Kotlin Docs | Kotlin Documentation (kotlinlang.org)

 

Kotlin Docs | Kotlin

 

kotlinlang.org

- 코틀린 실행하기 : https://play.kotlinlang.org/

 

Kotlin Playground: Edit, Run, Share Kotlin Code Online

 

play.kotlinlang.org

 

💡Simple Program

fun main(){
    println("Hello, World!")
}
  • fun : 함수 선언 키워드
  • main() : 프로그램의 시작 함수
  • { } : 함수의 내용은 블럭 안에서 정의
  • println() : 표준 출력 함수, 줄바꿈 포함

 

2. 변수

2.1 변수

- 읽기 전용 변수 : val

  • 값 변경 시도 시 에러
  • 타입을 명시하고 생성 후 초기값을 주는 것은 가능 (이후 변경 불가)
val x:Int // 가능
x = 3

val x = 3 // 가능

val x
x = 3 // 불가능

- 변경 가능한 변수 :  var

 

2.2 String templetes

- 변수의 값을 출력할 때 사용

- $ 기호로 시작

- 계산식은 { } 안에 작성

 

 

3. 타입 (type)

3.1 기본 타입

- 타입 지정

  • 변수명 : 타입
  • 타입 추론(type inference) : 초기값을 이용해 타입 추론이 가능하면 타입 생략 가능

- 최상위(함수 외부)에 선언한 변수나 클래스의 멤버 변수는 선언과 동시에 초기값 필수

- 함수 내부에 선언한 변수는 초기값을할당하지않아도 된다.

Category Basic types
Integers Byte, Short, Int, Long
Unsigned integers UByte, UShort, UInt, ULong
Floatin-point numbers Float, Double
Booleans Booleans
Characters Char
Strings String

 

3.2 그외 타입

- Any 

  • 모든 타입들의 조상 타입 (최상위 타입)
  • java.lang.Object 에 대응

- Unit

  • 자바의 void와 같은 기능 (생략 가능)
  • 아무 것도 반환하지 않는 함수의 반환 타입

- Nothing

  • 리턴이라는 행위를 하지 않음
  • null이나 예외 반환

 

4. 배열 (Array)과 컬렉션 (Collections)

4.1 배열 

- 동일한 타입(하위 타입 포함)의 고정된 수의 값을 저장하는 데이터 구조

배열 생성 예시

 

4.2 컬렉션 

Collection type Description
Lists Ordered collections of items
Sets Unique unordered collections of items
Maps Sets of key-value pairs where keys are unique and mapto only one value 

 

- 생성법 (변경 불가, 변경 가능)

  • listOf(), mutableListOf()
  • setOf(), mutableSetOf()
  • mapOf(), mutableMapOf()

 

1) List

 

2) Set

 

3) Map

 

🔎 배열과 컬렉션 비교

  • 배열 : 높은 성능 요구나 커스텀 데이터 구조가 필요할 때 유용
  • 컬렉션 : 유연하고 관리가 용이
    • 읽기 전용 옵션 제공
    • 요소 추가, 제거가 쉬움

 

5. 조건식 (Conditional expressions)

5.1 if

5.2 when

- statement

- expression

 

6. 반복문

6.1 Ranges

- ..

  • 1 .. 4 // 1, 2, 3, 4
  • 1 .. <4 // 1, 2, 3

- downTo : 감소시키기

  • 4 downTo 1 // 4, 3, 2, 1

- step : 건너뛰기

  • 1..5 step 2 // 1, 3, 5

- until

  • 마지막 숫자 제외하기
  • for (변수 in 시작값 until 종료값)

6.2 Loop - for

6.3 Loop - while, do-while