Slide 1

Slide 1 text

ྑ͍ίʔυΛॻͨ͘Ίʹ ΍ͬͯΈͯΔ͜ͱͭ LJVDIJLFJTVLF 4IJCVZBBQL

Slide 2

Slide 2 text

໦಺ܒี w ৬ۀɿ:ͷ"OESPJEΤϯδχΞ݉ҭࣇύύ w झຯͰ࡞ͬͨϞϊɿʮΒ͘ͰΜ "QQ ʯɺ
 ʮ$MFBO"SDIJUFDUVSF5FNQMBUF'PS,PUMJO 044 ʯ w Ϟοτʔɿ໌೔ͷࣗ෼ʹ༏͍͠ίʔυΛॻ͘ w 4/4
 5XJUUFS!GFJ@LPNF
 (JUIVC!LJVDIJLFJTVLF
 2JJUB!L@LFJTVLF

Slide 3

Slide 3 text

࠷ۙͷΞΫςΟϏςΟ

Slide 4

Slide 4 text

ࠓճͷൃද͸ كʹΑ͋͘Δ໰୊Λ ׂͱΑ͋͘Δख๏Ͱղܾ͠Α͏ͥ ͱ͍͏γϯϓϧͳ࿩

Slide 5

Slide 5 text

ΞδΣϯμ wҙຯͱ੍໿Λදݱ͠Α͏ wແΛදݱ͠Α͏ wϨϏϡʔ؍఺ΛγΣΞ͠Α͏

Slide 6

Slide 6 text

ҙຯͱ੍໿Λදݱ͠Α͏

Slide 7

Slide 7 text

ಥવͰ͕࣭͢໰Ͱ͢ WBMQIPOF/VN4USJOH ͱ͍͏ม਺ΛݟͨΒͲΜͳ஋Λ
 ૝૾͠·͔͢ʁ

Slide 8

Slide 8 text

࣍ͷ࣭໰ WBMUFMFQIPOF/VN4USJOH ͳΒͲ͏͍͏஋Ͱ͠ΐ͏

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

ࣅͯΔ͚ͲผͷҙຯΛ࣋ͭม਺ w QIPOF/VNl9999:::: w UFMFQIPOF/VNlUFM9999::::z ʮΒ͘ͰΜʯͷΞϓϦΑΓҰ෦վѱͯ͠ൈਮ

Slide 11

Slide 11 text

EBUBΫϥεJOJUؔ਺Ͱ
 ҙຯͱ੍໿Λදݱ͠Α͏

Slide 12

Slide 12 text

UFMFQIPOF/VNCFSJT data class TelephoneNumber(val number: String) { init { if (!number.startsWith(SCHEME)) { throw IllegalArgumentException(“error“) } else if (number.substring(SCHEME.length) .contains(Regex(“.*[^0-9#¥+¥*() -]+.*"))) { throw IllegalArgumentException(“error”) } } companion object { const val SCHEME = "tel:" } } 4$)&.&͔Β
 ࢝·ͬͯΔ͜ͱ ಛఆͷਖ਼نදݱΛ
 ຬͨ͢͜ͱ

Slide 13

Slide 13 text

QIPOF/VNCFSJT class PhoneNumber(val number: String) { init { if (number.startsWith(TelephoneNumber.SCHEME)) { throw IllegalArgumentException(“error") } else if ((number.contains(Regex(".*[^0-9#¥+¥*() -]+.*")))) { throw IllegalArgumentException(“error") } } } 4$)&.&͔Β࢝·ͬͯ
 ͍ͳ͍͜ͱ ಛఆͷਖ਼نදݱΛ
 ຬͨ͢͜ͱ

Slide 14

Slide 14 text

ิ଍JOMJOF$MBTT PSEBUB$MBTT w *OMJOFDMBTT ,PUMJOWFSd w JOJUϝιουΛ࣋ͯͳ͍ͷͰɺܕ੍໿ͷΈͰे෼ͷ৔߹ ʹར༻ w EBUBDMBTT w JOJUϝιουΛ࣋ͯΔͰɺܕ੍໿ϩδΧϧͳ੍໿Λ΋ ͍ͨͤͨ৔߹ʹར༻ ˞͋͘·Ͱ๻ݸਓͷߟ͑ํͰ͢

Slide 15

Slide 15 text

ແΛදݱ͠Α͏

Slide 16

Slide 16 text

࣍ͷ໰୊ ͋Δ-JTU͔Β৚݅ʹ߹கͨ͠
 ཁૉΛऔΓग़ؔ͢਺Λ࡞Γ͍ͨ

Slide 17

Slide 17 text

val contactList = List() fun findSameNumberContact(phoneNumber: PhoneNumber):Contact? { return contactList.find { it.getPhoneNumber() == phoneNumber } } ۭͷ-JTU͚ͩͲΩχγφΠσ

Slide 18

Slide 18 text

͍͍Ͷʂ☺

Slide 19

Slide 19 text

val contactList = List() fun findSameNumberContact(phoneNumber: PhoneNumber):Contact? { return contactList.find { it.getPhoneNumber() == phoneNumber } } Μʁ

Slide 20

Slide 20 text

/VMMBCMFͩ

Slide 21

Slide 21 text

ແΛදݱ͠Α͏

Slide 22

Slide 22 text

val contactList = List() fun findSameNumberContact(phoneNumber: PhoneNumber):Contact { return contactList.find { it.phoneNumber == phoneNumber } ?: Contact.NONE } data class Contact(val displayName: String, val contactId: String, val phoneNumber: PhoneNumber) { companion object { val NONE = Contact("", "", PhoneNumber("")) } } dddddddddddddddddddddddddddddddddddddddddddddddddddd

Slide 23

Slide 23 text

/PO/VMMͰແΛදݱʂ ☺ ˞ͨͩ͠ɺ/VMMͷ··ʹͨ͠΄͏͕ྑ͍৔߹΋͋ΔͷͰ༻๏༻ྔΛकͬͯ࢖͍·͠ΐ͏

Slide 24

Slide 24 text

ิ଍/VMMBCMF PSແΛදݱ w ແΛදݱˠ/VMMʹͳΔ͜ͱ͕ਖ਼ৗܥͷൣғ಺ͷ৔߹ྫ֎ॲཧ͕ෆ ཁʹͳΔ৔߹ w ྫ&EJU5FYUʹϢʔβʔ͕ೖྗͨ͠ి࿩൪߸ʹϚον͢Δి࿩൪߸Λ pOEͰݟ͚ͭɺి࿩൪߸Λදࣔ͢Δ ݟ͔ͭΒͳ͍ͳΒۭจࣈ w /VMMͷ··ˠ/VMMʹͳΔ͜ͱ͕ຊདྷ͋Γ͑ͳ͍৔߹ w ྫి࿩ாҰཡͰνΣοΫΛೖΕͨ൪߸͚ͩΛpOEͰݟ͚ͭΔ ˞͋͘·Ͱ๻ݸਓͷߟ͑ํͰ͢

Slide 25

Slide 25 text

ϨϏϡʔ؍఺ΛγΣΞ͠Α͏

Slide 26

Slide 26 text

๭೔ɺ͋Δ13ΛϨϏϡʔ ͍ͯͨ࣌͠ͷ͜ͱ

Slide 27

Slide 27 text

ࢦఠͨ͠΄͏͕͍͍
 Օॴ͕ଟ͗͢Δ

Slide 28

Slide 28 text

ࢦఠ͠ͳ͍Θ͚ʹ΋͍͔ͳ͍͕ɺ શ෦ࢦఠ͢Δͷ΋͠ΜͲ͍

Slide 29

Slide 29 text

ͳͷͰɺָΛͭͭ͠ νʔϜٕज़ྗͷ޲্ʹܨ͕Δํ๏ Λ΍ͬͯΈͨ

Slide 30

Slide 30 text

ձٞࣨΛ઎ڌͯ͠
 ϞϒϓϩతϨϏϡʔձΛ࣮ࢪ

Slide 31

Slide 31 text

ϞϒϓϩతϨϏϡʔ w ࢀՃऀɿ"OESPJE&OHਓɺJ04&OHਓ w ୊ࡐɿྫͷ13 ,PUMJO w ΍ͬͨ͜ͱɿ
 ࢦఠՕॴΛͲΜͲΜϗϫΠτϘʔυʹॻ͖ग़͢
 Ͳ͏௚ͨ͠΄͏͕͍͍͔ɺΛٞ࿦͢Δ
 ࢦఠΛ൓ө ͔͚ͨͬͨ͠Ͳ࣌ؒͷ౎߹্࣮ݱͤͣ

Slide 32

Slide 32 text

ϞϒϓϩతϨϏϡʔ ˞ࣾ֎ൿͳͷͰϞβΠΫॲཧͯ͠·͢

Slide 33

Slide 33 text

΍ͬͯΈͨײ৮ w վΊͯݟͯΈΔͱʮ͜ͷ࣮૷ԿΛҙਤͯ͠ΔΜͩ ʯͬͯͷ͕
 ग़ͯ͘Δ w ࢦఠ͞ΕΕ͹౰ͨΓલͱࢥ͑Δ΋ͷ͕ଟ͍ w ม਺໊ؔ਺໊ͷ໋໊ͷେ੾͞Λ࠶ೝࣝͨ͠ w ,PUMJOʹ׳Εͯͳ͍ਓ͕ॻ͘ͱ7BS͕ଟ͘ͳΔ

Slide 34

Slide 34 text

ϨϏϡʔ؍఺ΛγΣΞͯ͠ɺ
 νʔϜΈΜͳ͕ཧղͰ͖Δ
 ࣮૷Λ৺͕͚Α͏

Slide 35

Slide 35 text

·ͱΊ wࣅͨҙຯΛ͚࣋ͭͲҟͳΔม਺
 ˠҙຯͱ੍໿Λදݱ͠Α͏ wOVMMBCMFΛແ͘͢ํ๏
 ˠແΛදݱ͠Α͏ wνʔϜͷٕज़ྗ޲্΋݉Ͷͯۮʹ͸
 ϨϏϡʔ؍఺ΛγΣΞ͠Α͏

Slide 36

Slide 36 text

͓ΘΓͰͬ͢ʂ