fun dynamicFun(x: dynamic): Unit {
val dyn: dynamic = ...
}
,PUMJO%ZOBNJDUZQF
Slide 7
Slide 7 text
%ZOBNJDUZQF
Slide 8
Slide 8 text
%ZOBNJDUZQF
w EZOBNJDܕ
w WBMEZOEZOBNJDʜ
w ͳΜͰೖΔ
Slide 9
Slide 9 text
fun dynamicFun(x: dynamic): Unit {
}
Slide 10
Slide 10 text
fun dynamicFun(x: dynamic): Unit {
}
fun anyFun(x: Any): Unit {
}
Slide 11
Slide 11 text
fun dynamicFun(x: dynamic): Unit {
x.god
}
fun anyFun(x: Any): Unit {
x.god // ←ίϯύΠϧΤϥʔ
}
Slide 12
Slide 12 text
%ZOBNJDUZQF
w EZOBNJDܕ
w WBMEZOEZOBNJDʜ
w ͳΜͰೖΔ
w ܕνΣοΫΛߦΘͳ͍ʢίϯύΠϧΤϥʔʹͳΒͳ͍ʣ
Slide 13
Slide 13 text
// xHuman
fun dynamicFun(x: dynamic): Unit {
x.back.left.left.up.scratch()
}
class Back {
val left: Back
get() = Back()
val right: Back
get() = Back()
val up: Back
get() = Back()
val down: Back
get() = Back()
fun scratch(): Unit {
println(“ຬʂ”)
}
}
class Human {
val back = Back()
}
Slide 14
Slide 14 text
%ZOBNJDUZQF
w EZOBNJDܕ
w WBMEZOEZOBNJDʜ
w ͳΜͰೖΔ
w ܕνΣοΫΛߦΘͳ͍ʢίϯύΠϧΤϥʔʹͳΒͳ͍ʣ
w ࣗ༝ʹϓϩύςΟؔΛݺΔ
w EZOBNJDܕͷϓϩύςΟؔͷϦλʔϯEZOBNJDܕ
Slide 15
Slide 15 text
fun dynamicPlus(x: dynamic, y: dynamic): Unit {
x + y
}
Slide 16
Slide 16 text
fun dynamicPlus(x: dynamic, y: dynamic): Unit {
x + y // 3
}
dynamicPlus(1, 2)
Slide 17
Slide 17 text
fun dynamicPlus(x: dynamic, y: dynamic): Unit {
x + y // ڧ
}
dynamicPlus(“”, “ڧ”)
Slide 18
Slide 18 text
fun dynamicPlus(x: dynamic, y: dynamic): Unit {
x + y // iOSΤϯδχΞ
}
dynamicPlus(“iOS”, “ΤϯδχΞ”)
Slide 19
Slide 19 text
fun dynamicPlus(x: dynamic, y: dynamic): Unit {
x + y // 105ΤϯδχΞ
}
dynamicPlus(105, “ΤϯδχΞ”)
Slide 20
Slide 20 text
%ZOBNJDUZQF
w EZOBNJDܕ
w WBMEZOEZOBNJDʜ
w ͳΜͰೖΔ
w ܕνΣοΫߦΘͳ͍ʢίϯύΠϧΤϥʔʹͳΒͳ͍ʣ
w ࣗ༝ʹϓϩύςΟؔΛݺΔ
w EZOBNJDܕͷϓϩύςΟEZOBNJDܕ
w EZOBNJDಉ࢜ͷܭࢉՄೳ