Slide 1

Slide 1 text

"OESPJEXJUI 'VODUJPOBM1SPHSBNNJOH !UBLBTG[ $"54.&&561 

Slide 2

Slide 2 text

ؔ਺ܕϓϩάϥϛϯάͬͯԿʁ

Slide 3

Slide 3 text

ؔ਺ܕϓϩάϥϛϯάͱ͸ 'VODUJPOBMDPEFJTDIBSBDUFSJTFECZPOFUIJOHUIFBCTFODFPG TJEFFGGFDUT*UEPFTO`USFMZPOEBUBPVUTJEFUIFDVSSFOU GVODUJPO BOEJUEPFTO`UDIBOHFEBUBUIBUFYJTUTPVUTJEFUIF DVSSFOUGVODUJPO&WFSZPUIFSlGVODUJPOBMzUIJOHDBOCFEFSJWFE GSPNUIJTQSPQFSUZ "OJOUSPEVDUJPOUPGVODUJPOBMQSPHSBNNJOH IUUQTDPEFXPSETSFDVSTFDPNJTTVFTPOFBOJOUSPEVDUJPOUPGVODUJPOBMQSPHSBNNJOH

Slide 4

Slide 4 text

ؔ਺ܕϓϩάϥϛϯάͱ͸ w ෭࡞༻͕ͳ͍͜ͱ w ݱࡏͷؔ਺ͷ֎ʹଘࡏ͢ΔσʔλʹཔΒͣ ɺ
 ݱࡏͷؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛมߋ͠ͳ͍ w ͦͷଞͷʮؔ਺ܕʯͳ΋ͷ͸͢΂ͯɺ͜ͷಛੑͷ೿ੜͰ͋Δ w ෆมσʔλɺୈҰڃؔ਺ɺΧϦʔԽɺߴ֊ؔ਺ɺͳͲ "OJOUSPEVDUJPOUPGVODUJPOBMQSPHSBNNJOH IUUQTDPEFXPSETSFDVSTFDPNJTTVFTPOFBOJOUSPEVDUJPOUPGVODUJPOBMQSPHSBNNJOH

Slide 5

Slide 5 text

var num: Int = 0 fun incrementNum() { num += 1 } ෭࡞༻ͷ͋Δؔ਺

Slide 6

Slide 6 text

var num: Int = 0 fun incrementNum() { num += 1 } ෭࡞༻ͷ͋Δؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Βࢀর͍ͯ͠Δ

Slide 7

Slide 7 text

var num: Int = 0 fun incrementNum() { num += 1 } ෭࡞༻ͷ͋Δؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Βมߋ͍ͯ͠Δ

Slide 8

Slide 8 text

fun incrementNum(num: Int): Int { return num + 1 } ෭࡞༻ͷͳ͍ؔ਺

Slide 9

Slide 9 text

fun incrementNum(num: Int): Int { return num + 1 } ෭࡞༻ͷͳ͍ؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Β௚઀ࢀর͠ͳ͍

Slide 10

Slide 10 text

fun incrementNum(num: Int): Int { return num + 1 } ෭࡞༻ͷͳ͍ؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Β௚઀มߋ͠ͳ͍

Slide 11

Slide 11 text

fun KeirinCup.isHeld(): Boolean { return this.startDate.isBefore(LocalDate.now()) && this.endDate.isAfter(LocalDate.now()) } ෭࡞༻ͷ͋Δؔ਺

Slide 12

Slide 12 text

fun KeirinCup.isHeld(): Boolean { return this.startDate.isBefore(LocalDate.now()) && this.endDate.isAfter(LocalDate.now()) } ෭࡞༻ͷ͋Δؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ࢀর͍ͯ͠Δ

Slide 13

Slide 13 text

fun KeirinCup.isHeld(now: LocalDate): Boolean { return this.startDate.isBefore(now) && this.endDate.isAfter(now) } ෭࡞༻ͷͳ͍ؔ਺

Slide 14

Slide 14 text

fun KeirinCup.isHeld(now: LocalDate): Boolean { return this.startDate.isBefore(now) && this.endDate.isAfter(now) } ෭࡞༻ͷͳ͍ؔ਺ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ࢀর͠ͳ͍

Slide 15

Slide 15 text

fun divide(x: Double, y: Double): Double { if (y == 0.0) { throw IllegalArgumentException() } return x / y } ෭࡞༻ͷ͋Δؔ਺ʁ

Slide 16

Slide 16 text

fun divide(x: Double, y: Double): Double { if (y == 0.0) { throw IllegalArgumentException() } return x / y } ෭࡞༻ͷ͋Δؔ਺ʁ ྫ֎͕ൃੜ͢Δͱɺؔ਺ͷ֎ͷঢ়ଶ͕มԽ͢Δ ෭࡞༻͕͋Δ

Slide 17

Slide 17 text

fun divide(x: Double, y: Double): Double { if (y == 0.0) { return Double.NaN } return x / y } ෭࡞༻ͷͳ͍ؔ਺

Slide 18

Slide 18 text

෭࡞༻͕ͳ͍ͱɺԿ͕خ͍͠ͷʁ

Slide 19

Slide 19 text

ؔ਺ܕϓϩάϥϛϯάͱ͸ ࠶ w ෭࡞༻͕ͳ͍͜ͱ w ݱࡏͷؔ਺ͷ֎ʹଘࡏ͢ΔσʔλʹཔΒͣ ɺ
 ݱࡏͷؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛมߋ͠ͳ͍

Slide 20

Slide 20 text

ࢀরಁաੑ w ಉ͡Ҿ਺Λ༩͑Ε͹ɺඞͣಉ݁͡Ռ͕ฦΔ w ଞͷ͍͔ͳΔػೳͷ݁ՌʹӨڹΛ༩͑ͳ͍

Slide 21

Slide 21 text

ࢀরಁաੑ w ಉ͡Ҿ਺Λ༩͑Ε͹ɺඞͣಉ݁͡Ռ͕ฦΔ w ଞͷ͍͔ͳΔػೳͷ݁ՌʹӨڹΛ༩͑ͳ͍ ˠ ෭࡞༻͕ͳ͍˺ࢀরಁաੑ͕ߴ͍

Slide 22

Slide 22 text

ࢀরಁաੑ͕ߴ͍ͱ w ॲཧͷཧղͷ͠΍͢͞ w ෭࡞༻ʹΑΔόάΛੜΈͮΒ͍ w ςετ΍อक͕͠΍͍͢

Slide 23

Slide 23 text

෭࡞༻͕ͳ͍͜ͱͷσϝϦοτ w ঢ়ଶΛ࣋ͭॲཧΛهड़ͮ͠Β͍ w ྫ͑͹ɺಈըͷϩʔυதɺ࠶ੜதɺఀࢭதͳͲ

Slide 24

Slide 24 text

8JO5JDLFU"OESPJEʹ͓͚Δ ؔ਺ܕϓϩάϥϛϯά

Slide 25

Slide 25 text

w ࿮൪ɺं൪ w બख৘ใ ࢯ໊ɺ෎ݝɺڃ൝ͳͲ  w લճग़৔ͨ͠Ϩʔεͷ੒੷ w ։࠵৔ॴ w άϨʔυ w ֤Ϩʔεͷ݁Ռ ग़૸දલ৔ॴ

Slide 26

Slide 26 text

w ࿮൪ɺं൪ w બख৘ใ ࢯ໊ɺ෎ݝɺڃ൝ͳͲ  w લճग़৔ͨ͠Ϩʔεͷ੒੷ w ։࠵৔ॴ w άϨʔυ w ֤Ϩʔεͷ݁Ռ ग़૸දલ৔ॴ

Slide 27

Slide 27 text

w બख৘ใϦετ w બख*% લճग़৔ͨ͠Ϩʔεͷ*% લ ճग़৔ͨ͠Ϩʔεͷ݁ՌϦετ  w ϨʔεΧοϓϦετ w ϨʔεΧοϓ*% ϨʔεΧοϓ໊শ  άϨʔυ ڝྠ৔*%  w ڝྠ৔Ϧετ w ڝྠ৔*% ڝྠ৔໊শ  αʔό͔Β໯͏σʔλ

Slide 28

Slide 28 text

var response: KeirinRaceResponse? = null var entries = mutableListOf() fun parse() { for (record in response!!.recordsList) { var previousCup: KeirinCup? = null for (cup in response!!.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup .. αʔό͔Β໯ͬͨσʔλΛύʔε͢Δ

Slide 29

Slide 29 text

var response: KeirinRaceResponse? = null var entries = mutableListOf() fun parse() { for (record in response!!.recordsList) { var previousCup: KeirinCup? = null for (cup in response!!.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup .. αʔό͔Β໯ͬͨσʔλΛύʔε͢Δ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ࢀর͍ͯ͠Δ

Slide 30

Slide 30 text

var response: KeirinRaceResponse? = null var entries = mutableListOf() fun parse() { for (record in response!!.recordsList) { var previousCup: KeirinCup? = null for (cup in response!!.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup .. αʔό͔Β໯ͬͨσʔλΛύʔε͢Δ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ มߋ͍ͯ͠Δ

Slide 31

Slide 31 text

var response: KeirinRaceResponse? = null var entries = mutableListOf() fun parse() { for (record in response!!.recordsList) { var previousCup: KeirinCup? = null for (cup in response!!.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup .. αʔό͔Β໯ͬͨσʔλΛύʔε͢Δ

Slide 32

Slide 32 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 33

Slide 33 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Β௚઀ࢀর͠ͳ͍

Slide 34

Slide 34 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢ ؔ਺ͷ֎ʹଘࡏ͢ΔσʔλΛ ؔ਺ͷத͔Β௚઀มߋ͠ͳ͍

Slide 35

Slide 35 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 36

Slide 36 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 37

Slide 37 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢ GPSϒϩοΫͷ֎ʹଘࡏ͢ΔσʔλΛ GPSϒϩοΫͷத͔Βมߋ͍ͯ͠Δ

Slide 38

Slide 38 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { var previousCup: KeirinCup? = null for (cup in response.cupsList) { if (cup.id == record.previousCupId) { previousCup = cup break } .. ؔ਺ͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 39

Slide 39 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. entries.add(EntryTable(record, previousCup, cupVenue)) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 40

Slide 40 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. entries.add(EntryTable(record, previousCup, cupVenue)) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢ pSTU৚݅ʹ౰ͯ͸·Δ࠷ॳͷཁૉΛฦ͢

Slide 41

Slide 41 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. entries.add(EntryTable(record, previousCup, cupVenue)) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 42

Slide 42 text

fun parse(response: KeirinRaceResponse): List { val entries = mutableListOf() for (record in response.recordsList) { val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. entries.add(EntryTable(record, previousCup, cupVenue)) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢ GPSϒϩοΫͷ֎ʹଘࡏ͢ΔσʔλΛ GPSϒϩοΫͷத͔Βมߋ͍ͯ͠Δ

Slide 43

Slide 43 text

fun parse(response: KeirinRaceResponse): List { return response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 44

Slide 44 text

fun parse(response: KeirinRaceResponse): List { return response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢ NBQ֤ཁૉʹϒϩοΫͷॲཧΛద༻ͨ͠ ݁ՌͷϦετΛฦ͢

Slide 45

Slide 45 text

fun parse(response: KeirinRaceResponse): List { return response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢

Slide 46

Slide 46 text

fun parse(response: KeirinRaceResponse): List { return response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) GPSϒϩοΫͷ֎΁ͷ෭࡞༻Λͳ͘͢ Ұக͢Δσʔλ͕ͳ͍ͱ͖ ྫ֎͕ൃੜ͢Δ

Slide 47

Slide 47 text

"SSPX w ܕ෇͖ؔ਺ܕݴޠΛ࣮ݱ͢ΔͨΊͷ,PUMJO޲͚ϥΠϒϥϦ w "SSPX5SZ w ྫ֎͕ൃੜ͢ΔՄೳੑͷ͋Δؔ਺ͷݺͼग़͠Λ
 ϞσϧԽ͢Δ <+1>'VODUJPOBM1SPHSBNNJOHJO,PUMJOXJUI"SSPX IUUQTTQFBLFSEFDLDPNXBTBCFFGKQGVODUJPOBMQSPHSBNNJOHJOLPUMJOXJUIBSSPX

Slide 49

Slide 49 text

val tried = Try { .. } if (tried.isFailure()) { .. } if (tried.isSuccess()) { .. } tried.fold( ifFailure = { .. }, ifSuccess = { .. } ) "SSPX5SZͷγϯϓϧͳ࢖͍ํ

Slide 50

Slide 50 text

val tried = Try { .. } if (tried.isFailure()) { .. } if (tried.isSuccess()) { .. } tried.fold( ifFailure = { .. }, ifSuccess = { .. } ) "SSPX5SZͷγϯϓϧͳ࢖͍ํ 5SZ\^ϒϩοΫ಺Ͱ ྫ֎͕ൃੜ͢ΔՄೳੑͷ͋ΔॲཧΛߦ͏

Slide 51

Slide 51 text

val tried = Try { .. } if (tried.isFailure()) { .. } if (tried.isSuccess()) { .. } tried.fold( ifFailure = { .. }, ifSuccess = { .. } ) "SSPX5SZͷγϯϓϧͳ࢖͍ํ ྫ֎͕ൃੜͨ͠৔߹ͷॲཧ

Slide 52

Slide 52 text

val tried = Try { .. } if (tried.isFailure()) { .. } if (tried.isSuccess()) { .. } tried.fold( ifFailure = { .. }, ifSuccess = { .. } ) "SSPX5SZͷγϯϓϧͳ࢖͍ํ ॲཧ͕੒ޭͨ͠৔߹ͷॲཧ

Slide 53

Slide 53 text

val tried = Try { .. } if (tried.isFailure()) { .. } if (tried.isSuccess()) { .. } tried.fold( ifFailure = { .. }, ifSuccess = { .. } ) "SSPX5SZͷγϯϓϧͳ࢖͍ํ GPMEͰ·ͱΊͯهड़͢Δ͜ͱ΋Ͱ͖Δ

Slide 54

Slide 54 text

fun parse(response: KeirinRaceResponse): List { return response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) ॲཧͷࣦഊΛ໭Γ஋Ͱදݱ͢Δ Ұக͢Δσʔλ͕ͳ͍ͱ͖ ྫ֎͕ൃੜ͢Δ

Slide 55

Slide 55 text

fun parse(response: KeirinRaceResponse): Try> { return Try { response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) ॲཧͷࣦഊΛ໭Γ஋Ͱදݱ͢Δ

Slide 56

Slide 56 text

fun parse(response: KeirinRaceResponse): Try> { return Try { response.recordsList.map { record -> val previousCup: KeirinCup = response.cupsList.first { it.id == record.previousCupId } val cupVenue: KeirinVenue = response.venuesList.first { it.id == previousCup.venueId } .. EntryTable(record, previousCup, cupVenue) ॲཧͷࣦഊΛ໭Γ஋Ͱදݱ͢Δ ෭࡞༻͕ͳ͘ɺ҆શʹ ύʔεͰ͖ΔΑ͏ʹͳͬͨʂ

Slide 57

Slide 57 text

w ࿮൪ɺं൪ w બख৘ใ ࢯ໊ɺ෎ݝɺڃ൝ͳͲ  w લճग़৔ͨ͠Ϩʔεͷ੒੷ w ։࠵৔ॴ w άϨʔυ w ֤Ϩʔεͷ݁Ռ ग़૸දલ৔ॴ

Slide 58

Slide 58 text

·ͱΊ w 8JO5JDLFU"OESPJEΞϓϦ͸ɺཧղ͠΍͘͢ɾ҆શͰɾςε τ͠΍͍͢ίʔυΛॻͨ͘Ίʹɺؔ਺ܕϓϩάϥϛϯάͷཁ ૉΛऔΓೖΕ͍ͯ·͢ w ޲͖ෆ޲͖͕͋ΔͷͰɺ༻๏༻ྔΛकͬͯਖ਼͘͠࢖͍·͠ΐ ͏

Slide 59

Slide 59 text

No content