달력

9

« 2020/9 »

  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  

 

kotlin - smart cast

·       smart type cast

·       safe cast 연산자 (as?)

 

 

 

smart type cast

·       문맥적으로 타입을 추론하여 자동으로 변환해 주는 것을 말합니다.

 

 

 

 

as?

·       safe cast 연산자 (nullable type cast 연산자)

·       ?기호를 사용하여 as? 연산자를 사용하면 안전한 safe cast 있습니다.

·       해당 타입이면 수행을 하고 해당타입으로 캐스팅할 없어도 Exception(ClassCastException) 발생시키지 않고 null 반환해 줍니다.

 

구분

설명

unsafe cast

as 연산자을 이용한 케스트

safe cast

as?연산자를 이용한 케스트

 

 


'Development > Kotlin' 카테고리의 다른 글

kotlin - smart cast - smart type cast, safe cast 연산자 (as?)  (0) 2020.04.03
Java에서 Kotlin 사용  (0) 2020.03.29
Kotlin(코틀린) 장점  (0) 2020.03.22
Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Java에서 Kotlin 사용

Java에서 Kotlin코드를 호출할 때는 파일명에 Kt라는 키워드가 붙은 상태로 호출됩니다.

Null safe하게 호출해야 하며 그렇지 않으면 에러가 발생합니다.

 

Kotlin

Test.kt

 

fun testFun()

Java

MainTest.java

 

TestKt.testFun()

 

 

 

Null safe하게 호출해야 하며 그렇지 않으면 에러가 발생합니다.

Exception in thread "main" java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.ex01.TestKt.testFun, parameter a

at com.ex01.TestKt.merge(Test.kt)

at com.ex01.MainTest.executeKotlin(MainTest.java:29)

at com.ex01.MainTest.main(MainTest.java:23)

 

 


'Development > Kotlin' 카테고리의 다른 글

kotlin - smart cast - smart type cast, safe cast 연산자 (as?)  (0) 2020.04.03
Java에서 Kotlin 사용  (0) 2020.03.29
Kotlin(코틀린) 장점  (0) 2020.03.22
Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Kotlin(코틀린) 장점

·         간결함(Concise), 안전함(Safe), 다재다능함(Versatile), 호환성(Interoperable)등이 대표적인 장점으로 꼽히고 있습니다.

·         Java 개발하는 것보다 코드의 양이 줄어들었습니다.

·         포인트 예외(NullPointException) 대한 안전성이 증가되었습니다.

·         인텔리제이(IntelliJ), 안드로이드 스튜디오(AndroidStudio) 함께 사용할 있습니다.

·         Java 코드를 코틀린 코드로의 변환이 강력합니다. (Java 와의 100% 호환성을 제공)

·         인텔리제이에 Java 코드를 붙여넣으면 Kotlin 코드로 변환해 주기 때문에 하나하나 변환해보면서 배울 수도 있습니다.

·         현재의 Android API들을 그대로 사용할 있으며, 모든 Java 프레임워크 들을 사용 있습니다.

 


'Development > Kotlin' 카테고리의 다른 글

kotlin - smart cast - smart type cast, safe cast 연산자 (as?)  (0) 2020.04.03
Java에서 Kotlin 사용  (0) 2020.03.29
Kotlin(코틀린) 장점  (0) 2020.03.22
Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
Posted by codedragon codedragon

댓글을 달아 주세요




Varargs(VARiable ARGumentS; 가변인자)

http://codedragon.tistory.com/6281

 

  

 

Varargs 형식

·         코틀린에서도 자바와 같이 가변인자를 지원합니다.

·         자바는 타입뒤에 (3 dot) 사용해서 가변인자를 만들지만 코틀린은 vararg 키워드를 사용해서 가변인자를 만듭니다.

·         가변인자의 타입은 제네릭타입으로도 선언가능합니다.

 

 

fun argsTest(vararg va : Int){

 

for( a in va){

        println(a)

    }   

 

}

 

 

fun <T> argsTest(vararg va : T){

 

for( a in va){

        println(a)

    }   

 

}


 

'Development > Kotlin' 카테고리의 다른 글

Java에서 Kotlin 사용  (0) 2020.03.29
Kotlin(코틀린) 장점  (0) 2020.03.22
Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Posted by codedragon codedragon

댓글을 달아 주세요

2019. 10. 16. 18:43

data class Development/Kotlin


 

 

data class

·       데이터 클래스

·       Java DTO 클래스를 쉽게 만들어줍니다.

·       Structured Data Object 특징을 모두 가지게 됩니다. 그래서 toString(), equals(), hashCode(), copy() 함수를 재정의 없이 바로 사용할 있습니다.

·       기본 data class Pair Triple 클래스를 제공합니다.

 

 

 

 

 

Data Classes

https://kotlinlang.org/docs/reference/data-classes.html


 

 

 

 

 



'Development > Kotlin' 카테고리의 다른 글

Kotlin(코틀린) 장점  (0) 2020.03.22
Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Kotlin - Map관련 함수  (0) 2019.08.15
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

공변성 vs 반공변성

Java 와일드카드와 제네릭을 함께 사용해서 구현해 줍니다.

Kotlin에서는 키워드를 통해 구현합니다.

공변성

반공변성

Covariance

Contravariance

선언한 만큼은 읽을 있습니다.

채우지 않더라도 기록할 있습니다.

원래 지정된 것보다 더 많이 파생된 형식을 사용할 수 있습니다.

원래 지정된 것보다 제네릭한( 파생적인)형식을 사용할 있습니다.

생성자, extend, out // 하위 호환

소비자, super, in // 상위 호환

 

 


'Development > Kotlin' 카테고리의 다른 글

Kotlin - Varargs 형식  (0) 2020.03.17
data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Kotlin - Map관련 함수  (0) 2019.08.15
Kotlin - 논리 타입(Boolean)  (0) 2019.08.06
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

First-class citizen

·       1 객체 일급 객체 일급 시민

·       Kotlin 함수는 1 객체고 Java 함수는 1급 객체가 아닙니다.

·       1967년에 Christopher Strachey 언급

 

 

 

1 객체 성립 조건

3가지 조건을 모두 만족해야 1 객체입니다.

구분

조건

1

변수(Variable) 저장할 있습니다. (Anonymous function)

데이터로 할당 할 수 있어야 한다.

2

매개변수의 인자(Parameter) 전달할 있습니다. (HOF)

3

반환값(return value)으로 전달 있습니다.

 

 

 

http://bit.ly/2CMS6oG

https://en.wikipedia.org/wiki/First-class_citizen

 


'Development > Kotlin' 카테고리의 다른 글

data class  (0) 2019.10.16
공변성 vs 반공변성  (0) 2019.08.31
First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Kotlin - Map관련 함수  (0) 2019.08.15
Kotlin - 논리 타입(Boolean)  (0) 2019.08.06
변수 오버라이딩 - override property  (0) 2019.07.21
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Kotlin - Map관련 함수

 

메소드

설명

mapValues{ (k, v) -> R }

key, value 입력받아  처리한 결과는 R타입으로 해당 key. 묶인 map으로 반환됩니다.

.forEach { (k, v) -> TODO  }

map 모든 요소(Entry) it으로 매핑되어져서 처리됩니다.

 

 

inline fun <K, V, R> Map<out K, V>.mapValues(

    transform: (Entry<K, V>) -> R

): Map<K, R>

 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/map-values.html

 




'Development > Kotlin' 카테고리의 다른 글

공변성 vs 반공변성  (0) 2019.08.31
First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Kotlin - Map관련 함수  (0) 2019.08.15
Kotlin - 논리 타입(Boolean)  (0) 2019.08.06
변수 오버라이딩 - override property  (0) 2019.07.21
클래스 정의 - Java vs Kotlin  (0) 2019.07.19
Posted by codedragon codedragon

댓글을 달아 주세요


 

논리 타입(Boolean)

·         (true)이나 거짓(false) 가지 값을 나타내는 Boolean타입을제공합니다.

·         true 또는 false 값중 하나를 가집니다.


 

 

http://bit.ly/2ClqHtW 



'Development > Kotlin' 카테고리의 다른 글

First-class citizen, 1급 객체 성립 조건  (0) 2019.08.21
Kotlin - Map관련 함수  (0) 2019.08.15
Kotlin - 논리 타입(Boolean)  (0) 2019.08.06
변수 오버라이딩 - override property  (0) 2019.07.21
클래스 정의 - Java vs Kotlin  (0) 2019.07.19
*배열명  (0) 2019.07.11
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

변수 오버라이딩 - override property

·       프로퍼티 재정의

·       다른 언어와 달리 코틀린은 val/var앞에 override 키워드를 붙여 변수도 오버라이딩할 있습니다.

·       val var로재정의 가능합니다.

·       private으로 선언된 멤버는 오버라이딩 없습니다.

 

private val memberValue = "value" // 오버라드 불가

open protected val memberValue = "value" // 상속시 오버라드 가능

override val memberValue = "value" // 오버라드

final override val memberValue = "value" // 이상의 오버라드 불가

 

 


'Development > Kotlin' 카테고리의 다른 글

Kotlin - Map관련 함수  (0) 2019.08.15
Kotlin - 논리 타입(Boolean)  (0) 2019.08.06
변수 오버라이딩 - override property  (0) 2019.07.21
클래스 정의 - Java vs Kotlin  (0) 2019.07.19
*배열명  (0) 2019.07.11
문자열 배열  (0) 2019.06.26
Posted by codedragon codedragon

댓글을 달아 주세요