Slide 21
Slide 21 text
4UBSU
5*OU
5*OU
5*OU
5*OU
❌
eq($T1, Int?)
conv(Int?, $T2)
eq($T1, $T2)
conv(Int, $T1)
eq($T1, Int?)
conv(Int?, $T2)
eq(Int?, $T2)
conv(Int, Int?)
eq($T1, Int?)
conv(Int?, Int?)
eq(Int?, $T2)
conv(Int, Int?)
!ࠓ5Λ*OU ʹͯ͠Έ·͢ɻ
!͜ͷಉҰ੍͔Β୯ҰԽ͕Ͱ͖·͢ɻ
!5ͷಉҰ੍͕ग़ͯ͘ΔͷͰɺ
!࠶ͼ୯ҰԽ͠·͢ɻ
!͢Δͱɺશͯͷ੍ཱ͕͠ɺܕ͕ղ͚·ͨ͠ɻ
)BOEMJOH0WFSMPBET
func foo() -> Bool
func foo() -> Int
func foo() -> String
func main(i: Int) {
let a: Int = foo()
}
call($T1, (), Int)
eq($T1, () -> Bool)
eq($T1, () -> Int)
eq($T1, () -> String)
QPTTJCJMFY
͜ͷΑ͏ͳํ๏ʹΑͬͯɺΦʔόʔϩʔυʹରԠ͢Δ͜ͱ͕Ͱ͖·͢ɻ
!DBMM੍Λੜ͢Δͱ͖ʹɺ
ͦͷݺͼग़͠ର͕Φʔόʔϩʔυ͞Ε͍ͯͨΒɺ
ؔͷܕΛ͍ͬͨΜܕมʹ͓͖·͢ɻ
!ͦͯ͠ɺΦʔόʔϩʔυ͞Ε͍ͯΔؔΛͦͷܕมͷ୯ҰԽީิͱ͢ΔͷͰ
͢ɻ