Skils/Kotlin

[Kotlin] 기본 문법

재한 2022. 7. 26. 17:02

1. 주석처리

  • 힌줄짜리 주석 : //로 시작하여 줄이 끝나면 주석도 끝난다.
  • 여러 줄 주석 : /*로 시작하고 */로 끝난다.
  • KDoc 여러 줄 주석 : /**로 시작하고 */로 끝난다.
  • 자바와 달리 코틀린에서는 여러 줄 주석을 내포시킬 수 있다.

2. 변수 정의하기

val timeInSeconds = 15
  • val 키워드  : 값을 뜻하는 value에서 유래했다.
  • 변수 식별자 : 새 변수에 이름을 부여하고, 나중에 이를 가리킬 때 사용한다.
  • 변수의 초깃값을 정의하는 식 : = 기호 뒤에 온다.

💡자바와 다른 점

변수 정의 뒤에 세미콜론(;)을 붙이지 않았다. 코틀린에서는 줄 끝에 새미 콜론을 생략해도 된다.

 

📕타입 추론 

대부분의 경우 컴파일러가 코드의 문맥에서 타입을 도출해주는 언어 기능.

->코틀린은 강한 타입 지정 언어인 동시에 사용자가 불필요한 타입 정보를 코드에 추가해서 코드가 지저분해지는 일을 막을 수 있다.

 

📕지역 변수 타입 추론 

var text = "Hello"; 

->자동으로 text의 타입을 String으로 추론한다.

 

📕타입 명시

var n: Int = 100

val text: String = "Hello"

이러한 경우 초깃값이 지정한 타입에 속해야 한다.

val n : Int = "HELLO"

->int형을 String value로 할당하기 때문에 오류가 발생한다.

📗항상 변숫값을 읽기 전에 변수를 초기화해야 한다!

 

3. 식별자

변수나 함수 등 프로그램에 정의된 대상에 붙은 이름.

 

코틀린에서 식별자는 두 가지 형태로 구분된다.

 

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

  • 식별자는 오직 문자, 숫자, 밑줄 문자(_)만 포함한다. 숫자로 식별자를 시작할 수는 없다.
  • 밑줄로만 이뤄질 수도 있다. 하지만 이런 식별자(_,__,___등)는 모두 미리 예약된 식별자이므로 일반적인 식별자로는 사용될 수 없다.
  • 하드 키워드를 식별자로 쓸 수는 없다.
    • 하드 키워드(val, fun 등)는 코드 어디에 있든 키워드로 간주된다. 
  • 소프트 키워드(import 등)는 특별한 문맥에서만 키워드로 간주되고, 그런 문맥이 아닌 경우에는 일반적인 식별자로 쓰일 수 있다.

자바와 달리 코틀린 식별자에는 기호($)를 쓸 수없다.

 

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

val `fun` = 1

val `name with spaces`= 2

작은역따옴표 인용 부호로 묶인 실벼자 안에는 새 줄 문자나 작은 역 따옴표가 올 수 없다.

4. 가변 변수

지금 까지 살펴본 변수는 불변 변수다.

불변 변수는 한번 초기화하면 다시는 값을 대입할 수 없는 변수다.(자바의 final 변수와 유사함)

불변 변수를 사용하면 함수가 부수효과를 일으키지 못하고, 함수형 스타일 코드를 장려할 수 있으며, 이로 인해 코드에 대한 추론이 쉬워지기 때문에 가능하면 불변 변수를 많이 사용하는 게 좋다!

 

가변 변수의 정의는 val(불변 변수) 키워드 대신 var(가변 변수)를 사용해서 정의할 수 있다.

기본적인 문법은 같지만 원할 때 변수 값을 얼마든지 바꿀 수 있다는 점이 다르다.

=(대입) 기호를 사용해서 정의함.

var sum=1
sum=sum+2
sum=sum+3

변수의 값을 바꿀 순 있지만 변수의 타입을 못 바꾼다는 것을 유의하자!

5. 식과 연산자

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