달력

11

« 2019/11 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
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' 카테고리의 다른 글

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

댓글을 달아 주세요


 

 

 

공변성 vs 반공변성

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

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

공변성

반공변성

Covariance

Contravariance

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

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

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

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

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

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

 

 


'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

댓글을 달아 주세요


 

 

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

댓글을 달아 주세요


 

 

클래스 정의 - Java vs Kotlin

구분

Java

Kotlin

저장 파일명

파일명은 반드시 클래스 명과 동일하게 저장해야 합니다.

클래스 명과 달라도 상관없습니다.

객체 생성

new 키워드와 함게 생성자 함수를 호출

new 키워드없이 생성자 함수를 호출

최상위 슈퍼클래스

java.lang.Object

kotlin.Any

Method Overriding

@Override 어노테이션을 통한 재정의

open override 키워드을 통한 재정의

Variable Overriding

-

val/var앞에 override 키워드를 붙여 재정의

접근제한자

private

default

protected

public

private

protected

internal

public

 

 


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

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
Extensions  (0) 2019.06.18
Posted by codedragon codedragon

댓글을 달아 주세요

2019.07.11 01:30

*배열명 Development/Kotlin


 

 

*배열명

·       spread 연산자 펼침 연산자

·       다른 배열을 이용해서 다른 배열을 만들 사용합니다.

 

 

 

spread 연산자를 통한 배열 생성

spread 연산자를 사용하여 기존을 배열의 요소로 새로운 배열을 생성합니다.

val arr1 = arrayOf<String>("pineapple", "papaya", "banana")

val arr2: Array<String> = Array(2, {"fruit"})

 

val arr4 = arrayOf<String>(*arr1, *arr2)

println("arr4: ${arr4.joinToString(", ")}")

arr4: pineapple, papaya, banana, fruit, fruit

 

 


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

변수 오버라이딩 - override property  (0) 2019.07.21
클래스 정의 - Java vs Kotlin  (0) 2019.07.19
*배열명  (0) 2019.07.11
문자열 배열  (0) 2019.06.26
Extensions  (0) 2019.06.18
함수 오버라이딩 - override fun  (0) 2019.06.11
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

문자열 배열

·       문자열 배열은 배열의 요소로 문자배열을 가지는 2차원 배열과 비슷합니다.

 

Array<String> Array(Array<Char>)

 

Array<Char>

Array<Char>

Array<Char>

...

 

 

 

 

 

 

[][]

·       문자열은 문자배열이므로 배열로 문자열의 문자에 접근할 있습니다.

·       해당 문자열을 가지는 배열에서 [][] 기호를 통해 문자열 배열(stringArray) m번째 요소(문자열) n번째 문자를 의미합니다.

 

stringArray[m][n]

 

 

 


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

클래스 정의 - Java vs Kotlin  (0) 2019.07.19
*배열명  (0) 2019.07.11
문자열 배열  (0) 2019.06.26
Extensions  (0) 2019.06.18
함수 오버라이딩 - override fun  (0) 2019.06.11
함수내 함수 선언  (0) 2019.06.05
Posted by codedragon codedragon

댓글을 달아 주세요

2019.06.18 00:30

Extensions Development/Kotlin


 

 

Extensions

·       상속관계없이 함수나 프로퍼티를 추가하는 의미합니다.

·       확장함수는 멤버처럼  닷연산자(.) 통해 정적으로 접근할 있습니다.

·       extension function, extension property

 

 

 

 

 

Extensions

https://kotlinlang.org/docs/reference/extensions.html


 

 

 

 


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

*배열명  (0) 2019.07.11
문자열 배열  (0) 2019.06.26
Extensions  (0) 2019.06.18
함수 오버라이딩 - override fun  (0) 2019.06.11
함수내 함수 선언  (0) 2019.06.05
label 문  (0) 2019.05.30
Posted by codedragon codedragon

댓글을 달아 주세요