Slide 1

Slide 1 text

%FDJNBMɺਖ਼͘͠࢖ͬͯΔʁ forJ1IPOF%FW4BQQPSPGFBU)","5"TXJGU

Slide 2

Slide 2 text

} var employedBy = "YUMEMI Inc." var job = "iOS Tech Lead" var favoriteLanguage = "Swift" var twitter = "@lovee" var qiita = "lovee" var github = "el-hoshino" var additionalInfo = """ M1 Max MacBook Proࠓ೔ಧ͍ͨʂ """ final class Me: Developable, Talkable {

Slide 3

Slide 3 text

ʲ଎ใʳΏΊΈɺ҉߸௨՟Λൃߦʂ ˞ӕͰ͢ɻ

Slide 4

Slide 4 text

ͱ͍͏Θ͚Ͱ 
 ΏΊΈͷڅ༩͸:VNF$PJOͰࢧڅʹ ˞ӕͰ͢ɻ

Slide 5

Slide 5 text

// ࠓ݄ͷڅ༩ var myYumeCoin = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // ࢒ߴ֬ೝ print(myYumeCoin) // 0.20000000000000004 ??????

Slide 6

Slide 6 text

ͳͥ͜Μͳ͜ͱ͕ى͜Δͷ͔ w 4XJGUͰখ਺Λѻ͏ͱ͖ɺσϑΥϧτͰ͸Double͕ ࢖ΘΕΔ w Double͸ʮഒਫ਼౓ුಈখ਺఺਺ʯͳͷͰɺਫ਼౓ͷ໰ ୊Ͱͦ΋ͦ΋ਖ਼֬ʹදͤͳ͍਺ࣈ͕ͨ͘͞Μ͋Δ w େ఍ͷ৔߹͸ͦͷؙΊΒΕͨ਺ࣈͰ΋໰୊ʹͳΒͳ͍ ͕ɺۚ༥ܥͳͲͷ৔߹͸ਖ਼֬ʹѻ͏ඞཁ͕͋Δ

Slide 7

Slide 7 text

Decimal

Slide 8

Slide 8 text

Decimalܕ w ුಈখ਺఺਺Λेਐ਺ϕʔεͰѻ͏ͨΊͷܕ w ༗ޮܻ਺͕ܻ w ༗ޮܻ਺ൣғ಺Ͱ͋Ε͹ेਐ਺දهͷޡ͕ࠩͳ͍

Slide 9

Slide 9 text

// ࠓ݄ͷڅ༩ var myYumeCoin = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // ࢒ߴ֬ೝ print(myYumeCoin) // 0.20000000000000004 ??????

Slide 10

Slide 10 text

import Foundation // ࠓ݄ͷڅ༩ var myYumeCoin: Decimal = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // ࢒ߴ֬ೝ print(myYumeCoin) // 0.2 🎉 'PVOEBUJPO͕ඞཁ ܕΛ໌ࣔతʹ%FDJNBMʹࢦఆ

Slide 11

Slide 11 text

DecimalɺŜƃŤƄƃŬžŜŘŢŦ

Slide 12

Slide 12 text

DecimalɺŜƃŤƄƃŬžŜŘŢŦ ͱɺࢥͬͨʁ

Slide 13

Slide 13 text

import Foundation // ࠓ݄ͷڅ༩ var myYumeCoin: Decimal = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // ࢒ߴ֬ೝ print(myYumeCoin) // 0.2 🎉

Slide 14

Slide 14 text

import Foundation // ࠓ݄ͷڅ༩ var myYumeCoin: Decimal = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // Decimal Λ࢖ͬͯਖ਼֬ͳڅ༩ܭࢉ͕Ͱ͖͔ͨΒ͍͑΍Ϙʔφεʂ myYumeCoin += 123.456 // ࢒ߴ֬ೝ print(myYumeCoin) // 123.65599999999997952 !!!?????

Slide 15

Slide 15 text

DecimalɺūŬŹƂŜŽūŘ

Slide 16

Slide 16 text

DecimalͷϦςϥϧ୅ೖ w খ਺ϦςϥϧͰDecimalΛ୅ೖͰ͖Δͷ͸ɺ ExpressibleByFloatLiteralΛར༻ͨ݁͠Ռ w ࣮૷͸init(floatLiteral value: Double) w DecimalΛ࡞Δલʹͦ΋ͦ΋ઌʹҰճDoubleΛ ࡞ͬͯͦͷ݁ՌΛ୅ೖ͍ͯ͠Δ͚ͩʂ

Slide 17

Slide 17 text

খ਺ϦςϥϧͰ 
 DecimalΛ୅ೖ͠ͳ͍Ͱʂ

Slide 18

Slide 18 text

%FDJNBMΛखܰʢʁʣʹѻ͏ͨΊͷ 
 ΠχγϟϥΠβʔ • init(_ value: String, format: Decimal.FormatStyle, lenient: Bool = true) throws // iOS 15+ • init?(string: String, locale: Locale? = nil) // iOS 7+ • // etc…

Slide 19

Slide 19 text

import Foundation // ࠓ݄ͷڅ༩ var myYumeCoin: Decimal = 0.2 // ࠓ݄ͷϘʔφε myYumeCoin += 0.1 // ϘʔφεΛ࢖ͬͯങ͍෺ʂ myYumeCoin -= 0.1 // Decimal Λ࢖ͬͯਖ਼֬ͳڅ༩ܭࢉ͕Ͱ͖͔ͨΒ͍͑΍Ϙʔφεʂ myYumeCoin += 123.456 // ࢒ߴ֬ೝ print(myYumeCoin) // 123.65599999999997952 !!!?????

Slide 20

Slide 20 text

import Foundation // … // Decimal Λ࢖ͬͯਖ਼֬ͳڅ༩ܭࢉ͕Ͱ͖͔ͨΒ͍͑΍Ϙʔφεʂ //myYumeCoin += 123.456 // ࠓ౓ͦ͜ʂ myYumeCoin += try! .init("123.456", format: .number) // ࢒ߴ֬ೝ print(myYumeCoin) // 123.656 🎉

Slide 21

Slide 21 text

DecimalɺͪΐͬͱͰ͖͔ͨͳ

Slide 22

Slide 22 text

ʲࢀߟʳ

Slide 23

Slide 23 text

IUUQTGPSVNTTXJGUPSHUIPXUPJOJUJBMJ[FEFDJNBM

Slide 24

Slide 24 text

IUUQTJEFBMSFBMJUZDPNQSPHSBNJOHTXJGUEFDJNBMTUSJOH

Slide 25

Slide 25 text

ʲએ఻ʳ

Slide 26

Slide 26 text

IUUQTZVNFNJDPOOQBTTDPNFWFOU

Slide 27

Slide 27 text

IUUQTXXXZVNFNJDPKQDBUFHPSZSFDSVJU