2016년 4월 19일 화요일

Kotlin Programming Language 시작하기 - 기초문법

1. 기초 문법
 - 패키지 선언 : 자바와 같이 최상단에서 선언한다.
package foo.bar

fun baz() {}

class Goo {}
자바와 다르게 클래스와 메소드가 한 파일에 같은 레벨로 존재할 수 있다.
따라서 import시 사용할 메소드와 클래스의 패키지명은 같다
메소드 baz()의 풀패키지명은 foo.bar.baz
클래스 Goo의 풀 패키지명은 foo.bar.goo

패키지명이 특정되지 않았다면 default 패키지에 속하고 아무런 이름이 없다.

Imports
import foo.Bar // Bar만 접근가능 
import foo.* // foo의 모든 컨텐츠(패키지,클래스, 오브젝트 등등)에 접근가능
패키지명이 충돌할 수도 있다. 이때에는 'as'키워드를 사용한다
import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'

자바와는 다른점 import static이 없다. 패키지명이 디렉토리 구조와 달라도 상관없다

 메소드 선언하기
 fun 지시자(?)를 통해 선언하며  자바와 리턴타입과 파라미터 표현 방식이 조금 다르다. 형식은 다음과 같다. 
  fun <function 명>(<파라미터명>:<파라미터타입>):리턴 타입 

 예제로 제시된건 4가지 방법 있다. 
가. 자바와 비슷하게 return 타입을 선언하고 body에 return문 기술
fun sum(a: Int, b: Int): Int {
    return a + b
}
나. return 타입을 생략하고 = 우측에 return 문 기술
fun sum(a: Int, b: Int) = a + b
다. void 타입(return 타입 Unit은 void와 같다.)
fun printSum(a: Int, b: Int): Unit {
    print(a + b)
}
라. 3의 unit은 생략될 수 있다
fun printSum(a: Int, b: Int) {
    print(a + b)
}

변수 선언
변수를 선언할 때에는 크게 val과 var 두가지 타입으로 선언할 수 있다. val은 자바의  final과 비슷하며 선언하고 값을 초기화한 뒤에는 더이상 수정되지 않는다. var는 계속 수정 가능하다. 아래와 같이 선언 할 수 있다.
val a: Int = 1 //int 타입으로 선언하고 정수 1로 초기화
val b = 1   // 초기화 값이 있다면 타입 생략 가능
 val c: Int  // 선언과 동시에 초기화 하지 않는다면 타입선언 필요
c = 1       // 초기화
c=2       //다시 값을 변경하려 한다면 Kotlin: Val cannot be reassigned 오류발생

var x = 5 // `Int` type is inferredx += 1

null타입 변수 선언
null타입의 변수를 선언하기 위해서는 변수선언시 타입뒤에 ?를 붙여준다.
val canNull:String? = null //null로 변수를 초기화할 수 있다. 다만 val타입 변수는 다시 값을 변경할 수 없다 
val notNull:String = null  //null은 non-null type 변수의 값이 될 수 없다.

댓글 없음:

댓글 쓰기