@_a_akira
AAkira
CyberAgent, Inc.
Akira Aratani
private lateinit var aakira : User
data class User(val name: String, val twitterId: String, val githubId: String, val company: String)
print("Name : ${aakira.name}”)
println("Github Id : ${aakira.githubId}")
print("Twitter Id : ${aakira.twitterId}")
println("Company : ${aakira.company}")
$ whois
Unit, Nothing, void
Unit
The type with only one value: the Unit object.
This type corresponds to the `void` type in Java.
Slide 30
Slide 30 text
Unit, Nothing, void
void
Unit
⇨ 意味のない値を返す
=
Slide 31
Slide 31 text
Unit, Nothing, void
Nothing has no instances.
You can use Nothing to represent "a value that never exists”:
for example, if a function has the return type of Nothing,
it means that it never returns (always throws an exception).
Nothing
Slide 32
Slide 32 text
Unit, Nothing, void
Nothing
⇨ 存在しないを表す, 値は返さない
Slide 33
Slide 33 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail() {
throw IllegalStateException()
}
Slide 34
Slide 34 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail(): Unit {
throw IllegalStateException()
}
Slide 35
Slide 35 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail(): Unit {
throw IllegalStateException()
}
Slide 36
Slide 36 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail(): Unit {
throw IllegalStateException()
}
Int
Unit
Slide 37
Slide 37 text
Unit, Nothing, void
Int Unit
Any
Slide 38
Slide 38 text
Unit, Nothing, void
val foo: Any = if (bar) {
123
} else {
fail()
}
fun fail(): Unit {
throw IllegalStateException()
}
Slide 39
Slide 39 text
Kotlin, Java Types
Any → java.lang.Object
Slide 40
Slide 40 text
Unit, Nothing, void
val foo: Any = if (bar) {
123
} else {
fail()
}
fun fail(): Unit {
throw IllegalStateException()
}
⇨ fooはInt型にしたい
Slide 41
Slide 41 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail(): Nothing {
throw IllegalStateException()
}
Slide 42
Slide 42 text
Unit, Nothing, void
val foo = if (bar) {
123
} else {
fail()
}
fun fail(): Nothing {
throw IllegalStateException()
}
Int
Nothing
Slide 43
Slide 43 text
Unit, Nothing, void
Int Unit
Any
Nothing
Slide 44
Slide 44 text
Unit, Nothing, void
val foo: Int = if (bar) {
123
} else {
fail()
}
fun fail(): Nothing {
throw IllegalStateException()
}
Slide 45
Slide 45 text
Unit, Nothing, void
val foo: Int = if (bar) {
123
} else {
fail()
}
fun fail(): Nothing {
throw IllegalStateException()
}
Slide 46
Slide 46 text
Collections
Slide 47
Slide 47 text
Collections
kotlin.MutableList
kotlin.List
Slide 48
Slide 48 text
Collections
val mutableList = mutableListOf(1, 2, 3)
val list: List = mutableList
println(list) // [1, 2, 3]
Slide 49
Slide 49 text
Collections
val mutableList = mutableListOf(1, 2, 3)
val list: List = mutableList
println(list) // [1, 2, 3]
mutableList.add(4)
println(list)
Slide 50
Slide 50 text
Collections
val mutableList = mutableListOf(1, 2, 3)
val list: List = mutableList
println(list) // [1, 2, 3]
mutableList.add(4)
println(list) // [1, 2, 3, 4]
Collections
fun foo(): List = listOf(1)
fun bar(): MutableList = mutableListOf(1)
⇨ Decompile
Slide 53
Slide 53 text
Collections
@NotNull
public static final List foo() {
return CollectionsKt.listOf(Integer.valueOf(1));
}
@NotNull
public static final List bar() {
return CollectionsKt.mutableListOf(
new Integer[]{Integer.valueOf(1)});
}
Slide 54
Slide 54 text
Collections
@NotNull
public static final List foo() {
return CollectionsKt.listOf(Integer.valueOf(1));
}
@NotNull
public static final List bar() {
return CollectionsKt.mutableListOf(
new Integer[]{Integer.valueOf(1)});
}