본 글은 코드스피츠90 - 코틀린 언어편 2회차를 보고 필기한 글입니다.
클래스::class
인스턴스::class
fun <T:Any> stringify(target:T):String {
target::class.members.filter{ it is KProperty<*> }.forEach { it ->
val prop = it as KProperty<*>
}
return ""
}
fun <T:Any> stringify(target:T):String {
target::class.members.filterIsInstance<KProperty<*>>().forEach {it ->
}
return ""
}
"$변수명"
"${식}"
변수가 아닌 상수에만 적용
.joinTo(builder, ",", "{", "}"){
val value = it.getter.call(target)
"${jsonString(it.name)}:${when(value){
null -> null
is String -> jsonString(value)
is Boolean, is Number-> "$value"
is List<*>-> jsonList(value)
else-> jsonObject(value)
::함수, 인스턴스::메소드
return target
.joinTo(
builder,
",","[","]",
transform = ::stringify
).toString()
Iterator<T>.joinTo(
builder,
sep, begin, end,
limit, truncate,
transform
):String
# 사용법
fun 형.함수명(인자):반환형{
...
}
fun 함수명(형, 인자).반환형{
...
}
함수에서 형을 바깥으로 뺀 것이다.
it.findAnnotation<Name>()?.name ?: it.name)
?. - null chain
A ?: B - elvis
노베 상태에서 코틀린 들으려니 어렵다. 기본을 잡고 공부해야 할 것 같다.