보초의 코딩일기장

코틀린 이것만 보면 돼 : 3일차 본문

Android/Kotlin

코틀린 이것만 보면 돼 : 3일차

장보비 2020. 1. 7. 21:13

 

람다식 문법: 함수를 선언하지 않고 곧바로 식으로 전달되어서 표현된다.

{ x: Int, y: Int -> x + y }

 

1. 람다는 항상 중괄호 사이에 위치한다.

2. 화살표(->)가 인자 목록과 람다 본문을 구분해준다.

3. 람다 식은 변수에 저장할 수 있다.

4. 람다 식을 직접 호출할 수 있다.

 

java)

fun sayHello (name: String) {
   println("Hello, $name!")
}
sayHello("Nachoi")

 

kotiln)

val sayHello = { name: String -> println("Hello, $name!")}
sayHello("Nachoi")

 

로또생성기 코드 onFirstGameItemSelected 함수에서 아래와 같이 사용할 수 있음.

private fun onFirstGameItemSelected(parent: AdapterView<*>, position:Int){
        val selectedNumber= Integer.parseInt(parent.getItemAtPosition(position) as String)

        when(parent.id){ 
           // parent.id 가 first_number1 인 경우, if문 실행.
            R.id.first_number1 -> if(isDuplication(mFirstGameNumbers, selectedNumber)){
                showDuplicationDialog(first_number1, mFirstGameNumbers)
            } else{
                mFirstGameNumbers[0] = selectedNumber
            }
         ...

영어단어문제 프로젝트에서 자바에서는 클래스 생성을 아래와 같이 길게 써야 하지만,

pubublic class Question{
  private int mEnglish;
  private int mKorean;

  public Question(int english, int korean){
    mEnglish = english;
    mKorean = korean;
  }
  public int getEnglish(){ ... }
  public int getKorean(){ ... }
}

코틀린에서는 getter, setter의 생략이 가능하고, 간단한 형태로 구현할 수 있다.

class Question(val english: Int, val korean: Int)
Buy me a coffeeBuy me a coffee
Comments