레이블이 tutorial kotlin인 게시물을 표시합니다. 모든 게시물 표시
레이블이 tutorial kotlin인 게시물을 표시합니다. 모든 게시물 표시

2016년 4월 21일 목요일

kotlin programming language - 조건 제어문

kotlin에는 if, when 두가지 조건 제어문이 있습니다.

if 조건문

//1.전통적인 사용법
var max = a 
if (a < b)
  max = b
 
// 2.if .. else
var max: Int
if (a > b) 
  max = a
else
  max = b
 
kotlin에서는 if문으로 3항연산자를 표현할 수 있습니다.
val max = if (a > b) a else b
오른쪽 조건문의 값이 왼쪽 변수에 대입될 수 있습니다. 만약 if문에 {}블록이 있다면 마지막 항목이 해당 블록의 리턴값이 됩니다.

val max = if (a > b) {
    print("Choose a")
    a
  }
  else {
    print("Choose b")
    b 
  }
a가 1 b가 2라고 한다면 max = 2가 됩니다.

when 
when은 기존의 switch문을 대신합니다. 
when (x) {
  1 -> print("x == 1") //x가 1일 때 
  2 -> print("x == 2") //x가 2일 때
  else -> { // 나머지 경우
    print("x is neither 1 nor 2")
  }}
변수가 다르지만 같은 결과를 출력 때는 ','로 구분하여 사용할 수 있습니다.
when (x) {
  0, 1 -> print("x == 0 or x == 1")
  else -> print("otherwise")}

또 in 을 range나 컬렉션과 함께 사용할 수 있습니다.
when (x) {
  in 1..10 -> print("x is in the range")
  in validNumbers -> print("x is valid")
  !in 10..20 -> print("x is outside the range")
  else -> print("none of the above")}

타입 체크시에는 'is'를 사용합니다.
val hasPrefix = when(x) {
  is String -> x.startsWith("prefix")
  else -> false}

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 변수의 값이 될 수 없다.

2016년 4월 18일 월요일

Kotlin Programming Language 시작하기 - 환경설정하기


구글과 오라클의 자바관련 소송으로 인하여 안드로이드에서 자바로 개발할 수 있는 날이 얼마 남지 않은것 같다.
레퍼런스를 기초로 공부해보자
https://kotlinlang.org/docs/reference/

1. 환경설정하기
 - 개발도구 : intellij ide < 클릭하여 다운로드
 - kotlin은 커뮤니티 버전과 울티메이트 버전 모두 지원하니 아무거나 받아도 무방하다.

설치후 setting메뉴의 plugin항목으로 진입하여 kotlin 관련 플러그인이 설치되어 있는지 확인한다. 설치되어 있지 않다면 설치한다.







프로젝트를 생성한다.



라이브러리를 추가한다. 로컬에서 복사하던지 플러그인에서 생성하게 한다.

다음과 같은 빈 프로젝트가 생성된다.

프로젝트를 선택하고 우클릭하여 kotlin 파일을 생성해 보자.
다음엔 가장 기초인 'Hello world' 출력하기!

fun main(args:Array<String>){
    print("hello world")
}
생성한 파일에 다음과 같이 입력하고 실행한다. 실행방법은 2가지가 있다. 
첫번째 생성한 파일을 우클릭한 후 run 메뉴를 선택한다.
두번째 상단 Run 메뉴에서 Run/debug configration을 클릭한다. 코틀린을 선택하여 실행환경을 생성한다. 이경우에 메인 클래스명이 입력되어 있지 않은데 형식은 다음과 같다. 
main.kt파일을 생성하였다면 MainKt와 같이 입력하면 된다. 첫번째 방법으로 실행하는게 편하다.
실행환경생성
실행을 누르면 잠깐의 컴파일 시간이 지난 후 다음과 같은 결과를 볼 수 있다.

내일은 기초 문법을 공부해보자