ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코틀린 완벽 가이드] 2장 코틀린 언어 기초 (2.1 - 2.2)
    코틀린 공부/코틀린 2023. 12. 27. 13:12

    배우는 내용

    • 변수 정의
    • 가변과 불변 변수
    • 기본 식: 참조, 호출, 단항/이항 연산자
    • 기본 타입과 연산: 수, 문자, 불 값
    • 문자열 타입: 문자열 리터럴과 템플릿, 기본 문자열 연산
    • 배열 타입: 배열 생성과 기본 연산

    2.1 기본 문법

    2.1.1 주석

    1. 한 줄짜리 주석: // 

    //

     

    2. 여러 줄 주석 /* 여러 줄 주석 */ 

    /*
    여러 줄 주석
     */

     

    3 KDoc 여러줄 주석: /** KDoc 여러줄 주석 */

    /**
    KDoc 여러줄 주석
    */

     

    2.1.2 변수 정의하기

    • val 키워드 
    • 변수 식별자 : 새 변수에 이름을 부여하고, 나중에 이를 가리킬 때 사용한다.
    • 변수의 초깃값을 정의하는 식 : = 기호 뒤에 온다.
    fun main() {
        val a = readln().toInt()
        val b = readln().toInt()
        println(a + b)
    }
    • readln운 readLine을 실해앟게 하는 호출 식이다. 표준 입력에서 한 줄을 읽어서 문자열 반환
    • !!은 null이 아님을 단언으로, readLine()의 결과가 널일 경우 예외 발생. (4장에서 더 자세히)
    • toInt는 String이 제공하는 메소드 (문자열 -> 정숫값).

    a,b 같은 변수를 지역 변수라고 한다. 자바와는 타르게 타입을 안적는 타입추론이 적용되어있다.

     

    val text: String
    text = "Hello"

     

    초기값을 생략하고 나중에 다른 문에서 변수를 초기화할 수도 있다. 이 경우 변수 타입을 명시해야 한다.

     

    2.1.3 식별자

     

    식별자는 변수나 함수 등 프로그램에 정의된 대상에 붙은 이름이다. 코틀린 식별자는 두가지로 구분된다.

     

    첫 번째는 자바 식별자와 비슷하며 다음 규칙을 만족하는 임의의 문자열이다

    • 식별자는 오직 문자, 숫자, 밑줄 문자(_)만 포함한다. 숫자로 식별자를 시작할 수는 없다.
    • 밑줄로만 이뤄질 수도 있다. 하지만 이런 식별자(_, __, ___ 등)는 모두 미리 예약된 식별자 이므로 일반적인 식별자로 사용될 수 없다.
    • Hard Keyword는 식별자로 쓸 수는 없다.

    하드 키워드(val, fun 등)는 코드 어디에 있든 키워드로 간주된다.

    반면 소프트 키워드(import)는 특별한 문맥에서만 키워드로 간주되며, 그런 문맥이 아닐경우 사용가능 (목록 링크)

     

    두 번째 형태는 작은따옴표(')로 감싼 식별자로, 두 작은따옴표 사이에는 빈 문자열을 제외한 아무 문자열이나 와도 된다.

     

    2.1.4 가변 변수

    불변 변수(val로 정의된 변수)를 사용하면 함수가 부수 효과를 일으키지 못하고, 함수형 스타일 코드를 장려할 수 있으며, 이로 인해 코드에 대한 추론이 쉬워지기 때문에 가능하면 불변 변수 사용 장려.

     

    but 필요한 경우 var 키워드를 사용해 가변 변수 정의 가능!

    var sum = 1
    sum = sum + 2
    println(sum)
    

     

    2.1.5 식과 연산자

    지금까지 사용한 코틀린 식을 다음과 같이 분류 가능 :

    • 각 타입에 속하는 구체적인 값을 표현하는 리터럴(12, 3.56)
    • 변수/프로퍼티 참조와 함수 호출 (a, readLine(), "abc".length, "12".toInt())
    • 전위와 후위 단항 연산 (-a, b++, --c)
    • 이항 연산(a+b, x < 1)

    모든 식은 정해진 타입이 있다.

     

    자바랑 배슷한 내용이라 생략

     

    2.2 기본 타입

    2.2.1 정수 타입

    Byte Short Int long

     

    어떤 정수 타입 값을 표현하는 가장 간단한 리터럴은 10진수다.

    코틀린 1.1부터는 자바 7+와 마찬가지로 수 리터럴에 _를 넣어서 가독성을 높일 수 있다.

    var n = 12345
    n = 34_123_123
    println(n) //34123123

    2.2.2 부동소수점 수

    Float, Double

        val pi = 3.14
        val quarter = .25
    }

     

    2.2.3 산술 연산

     

    2.2.4 비트 연산

     

    2.2.5 문자 타입 Char

     

    2.2.6 수 변환

     

    각 수 타입마다 값을 다른 수 타입으로 변환하는 연산이 정의돼 있다.

    toByte(), toShort() 등등 앞에 to를 붙힌다.

     

    자바와는 달리 코틀린에서는 범위가 큰 타입이 사용돼야 하는 문맥에 범위가 작은 타입을 쓸 수 없다. 예를 들어 Int 값을 Long 변수에 대입할 수 없다.

    val p = 100 // Int
    val l:Long = p // 타입이 일치하지 않습니다.

     

    2.2.7 불 타입과 논리 연산

    • ! : 논리 부정
    • or, and, xor : 즉시 계산 방식의 논리합, 논리곱, 논리배타합
    • ||, && : 지연 계산 방식의 논리합, 논리곱

     

    자바와 다르게 코틀린은 &와 | 연산자를 제공하지 않는다. 'and' 와 'or' 이 각각 '&' 와 '|' 을 대체한다.

     

    val x = 2
    val y = 3
    println(x != 1 && y/(x-1) != 1)

     

    위에 예는 지연 계산 필수. x==1 일떄 y/0 오류 발생

     

    순서 : 즉시 계산 > 지연 계산

    2.2.8 비교와 동등성

    ==, !=, <, <=, >, >=

     

    일반적으로 동등성 연산인 ==와 !=은 모든 타입의 값에 적용 가능 그러나 수 타입, Char, Boolean 예외

    val a = 1
    val b = 2L
    println(a.toLong()==b)
Designed by Tistory.