173 Views
June 23, 16
スライド概要
2016/06/22 の『FiNC WWDC振り返り勉強会』にて、WWDC16 の Swift Lab が超たのしかった!というお話をしてきました。
※ Docswell での公開に移行する直前の Slideshare での閲覧数は 2,041 でした。
正統派趣味人プログラマー。プログラミングとは幼馴染です。
4XJGU0QFO)PVST %FWFMPQFS5PPMT-BC"JO88%$ 'J/$88%$ ৼΓฦΓษڧձ &;/&5۽୩༑ 4XJGU1SFWJFX IUUQF[OFUKQ
۽୩༑ !FT@LVNBHBJ &;/&5IUUQF[OFUKQ ษڧձ ԣJ1IPOF։ൃऀษڧձ ΧδϡΞϧ4XJGUษڧձ ZJEFW ˏԣɾഅंಓ DTXJGU !ԣɾ੨༿ Θ͍Θ͍ɾΏΔ͘ɺJ1IPOF։ൃऀͷ ΈΜͳͰָ͘͠ա͢͝ͷ͕తͷձ ΏΔ͘ΈΜͳͰ4XJGUʹ͍ͭͯ ޠΒ͑Δ͕ཉͯ࢝͘͠Ίͨձ ୈ̎̐ճΛʹ։࠵༧ఆ ୈ̍̌ճ݄ޙ͔ʁ
۽୩༑ !FT@LVNBHBJ &;/&5IUUQF[OFUKQ ॻ੶ొஃ 9DPEFపఈղઆ .04" 9DPEFͷશػೳΛ పఈతʹղઆͨ͠ຊ 049J04ܥͷྺ࢙ਂ͍ ༗ྉձһ੍ͷษڧձ 9DPEFͰཱͭͣ ๏ਓձһଟ 紙版は絶版、電⼦書籍は販売中
۽୩༑ !FT@LVNBHBJ &;/&5IUUQF[OFUKQ J04 049 "QQMF8BUDIΞϓϦ $PEF1JFDF ͍ͭͷి ιʔείʔυΛ5XJUUFSͱ (JTUʹಉ࣌ߘͰ͖Δɻ ࣜࢉܭ͑ݟΔిΞϓϦɻ XBUDI04ରԠ ԻͰ࠶ୡΰου &;/&5*11IPOF ؆୯ૢ࡞Ͱ ࠶ୡͷਃ͠ࠐΈɻ J1IPOFͰͻ͔ΓిΛ͏ɻ ࣗ-"/͔Βͷར༻ઐ༻
$PEF1JFDFGPS04 9 ษڧձΛָ͠ΉΞϓϦ ιʔείʔυΛ5XJUUFSͱ(JTUʹಉ࣌ߘͰ͖Δ ษڧձͰݟΛΈΜͳͱڞ༗͍ͨ࣌͠ͱ͔ʹศརʂ Ͱ͖Δ͜ͱ #FiNC_WWDC
8 8%$ ʙ
88%$ ͍ͪΜָ͔ͬͨ͜͠ͱ
%FWFMPQFS5PPMT-BC" 4XJGU0QFO)PVST
4XJGU0QFO)PVST ϥϘͰ࣭ͨ͜͠ͱ ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨ۩ମతͳཧ༝ʁ !TXJGU@NJHSBUJPOଐੑͷ͍ํΛΓ͍ͨ *60ଐੑೖΕࢠʹͰ͖ͳ͍ͣͳͷʹ ೖΕࢠʹͰ͖Δ߹͕͋Δͷͳͥʁ $PMMFDUJPOͰJOEFY BGUFS ͕ඞਢʹͳͬͨཧ༝ʁ TPVSDF-PDBUJPOͱpMF࿈ಈ͠ͳ͍ͷʁ ETPIBOEMF࣮ߦ࣌ΤϥʔʹͳΔ͕ɺͲ͏͏ͷ͔ ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ !DPOWFOUJPOͷ༻్Λ͏গ͠ৄ͘͠Γ͍ͨ ධՁࣜʹର͢ΔTFMGͲ͏͍͏ޮೳ͕͋Δͷ͔ ʹܕର͢ΔTFMGΛলུͰ͖Δ߹͕͋Δͷͳͥʁ !XBSO@VOVTF@SFTVMU͕1MBZHSPVOEͰޮ͔ͳ͍ཧ༝ʁ
4XJGU0QFO)PVST ϥϘͰ໘ന͔ͬͨ͜ͱ ͜Ε͕͔Βͳ͍ ͨͿΜ͜͏ɻͪΐͬͱͬͯͶ ͦ͏ʂ΄Βɺ͜ͷ௨Γ͞ʂ ʉ ˜ ʉ C Ͱɺ͜͏ͳΔΑʁ
4XJGU0QFO)PVST ϥϘͰ໘ന͔ͬͨ͜ͱ Ͱɺ͜͏ͳΔΑʁ ಥͲ͔࣬͜ʂ Կ͕ͯͬ͜ىΔ͔ɺ૾Ͱ͖ͳ͍ʜʂ ͜͏͔ͳʔʁ͍ҧ͏ͳʔʁ ͳΜ͔͏ͦ͠خͶʜ όάʂ ʉ ˜ ʉ C े΄Ͳͯ͠ಥɺ͚ۦΔʂ
4XJGU0QFO)PVST ϥϘͰͱ͔ͨͬ͜͠خ
4XJGU0QFO)PVST 'JTIFSNBO`T8IBSGͷΦεεϝฉ͚ͨʂ
4XJGU0QFO)PVST ࠷ߴʹྑ͍ʂ ɾ㱼ɾ
4XJGU0QFO)PVST ͦ͜ͰਘͶͨ͜ͱΛ̎ͭհ
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ٙ ⾣ 4XJGU"1*%FTJHO(VJEFMJOFTͰنఆ ⾣ ͦͦԿނɺͦͷنఆ͕ੜ·Εͨͷ͔ // 型やプロトコルの名前は Upper Camel Case class SomeClass {…} protocol SomeProtocol {…} // それ以外の“すべて”は Lower Camel Case var someVariable: SomeType func someFunction() {…} #line 4XJGU1SFWJFX
Swift Lab で聞いてみた! /* 英語が超苦手につき、以降は自己解釈を多く含みます。 間違い・違和感に気付いたら教えてください m(_ _)m */
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ൃྻࢠڍͷنଇ // Swift 2 では Upper Camel Case enum SomeEnumeration { case SomeCase } let value = SomeEnumeration.SomeCase 4XJGUY // Swift 3 では Lower Camel Case enum SomeEnumeration { case someCase } let value = SomeEnumeration.someCase 4XJGU1SFWJFX
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ྻࢠڍͷߏ ⾣ ྻܕڍλΠϓ ⾣ ྻࢠڍίϯελϯτΒ͍͠ 5ZQF enum SomeEnumeration { case someCase case someAssociatedCase(value: Int) } 5ZQF.FNCFS $POTUBOU 4XJGU1SFWJFX
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ྻܕڍΛೖΕࢠʹͨ࣌͠ͷ߹ੑ ⾣ ໊ܕ͋Δछͷ໊લۭؒ ⾣ ۭؒ ֎ଆ ͱϝϯόʔ ଆ ͷՄࢹੑʹ // Swift 2 enum Someone { enum Sometimes { case Something } } // どこが空間でどこがそのメンバーか、読みにくい印象 let value = Someone.Sometimes.Something 4XJGUY
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ྻܕڍΛೖΕࢠʹͨ࣌͠ͷ߹ੑ ⾣ ໊ܕ͋Δछͷ໊લۭؒ ⾣ ۭؒ ֎ଆ ͱϝϯόʔ ଆ ͷՄࢹੑʹ // Swift 3 enum Someone { enum Sometimes { case something } } // 空間とメンバーの違いが明瞭 let value = Someone.Sometimes.something 4XJGU1SFWJFX
ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨཧ༝ ྻͱྫ׳͚ͩࢠڍҟͳ͍ͬͯͨͷಈػ ⾣ ैલɺྻ͕͚ͩࢠڍ6QQFS$BNFM$BTF ⾣ ͦΕҎ֎ͷϝϯόʔશͯ-PXFS$BNFM$BTF enum SomeEnumeration { enum NestedEnumeration { case OtherCases } case SomeCase func someFunction() {…} var rawValue: SomeType {…} } 4XJGUY
نଇΛΨΠυϥΠϯͰ౷ҰԽ 'PMMPXDBTFDPOWFOUJPOT/BNFTPGUZQFTBOEQSPUPDPMTBSF UpperCamelCase&WFSZUIJOHFMTFJTlowerCamelCase
نଇΛΨΠυϥΠϯͰ౷ҰԽ Өڹൣғ࣍ͷͷ͚ͩ ⾣ ྻܕڍͷྻ໊ࢠڍ ⾣ Φϓγϣϯηοτͷީิ໊ // 列挙型 enum SomeEnumeration { case someCase } // オプションセット struct SomeOptions : OptionSet { static let optionA = SomeOptions(rawValue: 1 << 0) } 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ٙ ⾣ EFGFSͰએݴલͷมΛ͑Δ͜ͱΛͬͨ ⾣ ҙਤͤͣͦ͏ͳ͍ͬͯΔɺͱߟ͑ʹ͍͘ defer { // 宣言はまだなのに何故か使える handle.close() } // defer の外だと当然のように使えない handle.close() 6TFPGMPDBMWBSJBCMFIBOEMFCFGPSFJUTEFDMBSBUJPO // このタイミングで宣言してみているときの話 var handle: Handle 4XJGU1SFWJFX
Swift Lab で聞いてみた! /* 日本語が超達者な人が担当してくださり 存分に理解を深めることができました m(_ _)m */
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ૾ ⾣ ૣ͍ஈ֊ͰEFGFS͕దͳॴʹҠಈ͢Δʁ ⾣ ͦͷ۩Ͱޙମతͳίʔυͷ࣮ߦ͕ߦΘΕΔʁ // 実質的に次のコードに変換されると予想 var handle: Handle : : : : : : : : : handle.close() 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ίʔυͷॲཧͷྲྀΕ 4XJGUίʔυ 1BSTFS "45 "CTUSBDU4ZOUBY5SFF 5ZQF$IFDLFS "45 5ZQFT 4*-(FO 3BX4*-ʢ4XJGU*OUFSNFEJBUF-BOHVBHFʣ 4*-ॲཧ $BOPOJDBM4*- *3(FOʜ
͔֬ΊͯΈ·͠ΐ͏ʂ
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ γϯϓϧͳιʔείʔυΛ༻ҙ͢Δ ⾣ ͜ͷίʔυͰϏϧυ͕௨Δཧ༝Λ୳Δ do { defer { print("Deferred", value) } print("Initial") let value = 10 } 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ ίʔυΛ1BSTFͯ͠ΈΔ ⾣ TXJGUDEVNQQBSTFEFGFSTXJGUcPQFOG EP@TUNU CSBDF@TUNU EFGFS@TUNU GVOD@EFDMJNQMJDJUEFGFS UZQFOVMMUZQF QBSBNFUFS@MJTU CSBDF@TUNU DBMM@FYQSUZQFOVMM VOSFTPMWFE@EFDM@SFG@FYQSUZQFOVMMOBNFQSJOUTQFDJBMJ[FEOP UVQMF@FYQSUZQFǎOVMM TUSJOH@MJUFSBM@FYQSUZQFOVMMFODPEJOHVUGWBMVF%FGFSSFE VOSFTPMWFE@EFDM@SFG@FYQSUZQFOVMMOBNFWBMVFTQFDJBMJ[FEOP DBMM@FYQSJNQMJDJUUZQFOVMM EFDMSFG@FYQSJNQMJDJUUZQFOVMMEFDMEFGFS GJMF UPQMFWFMDPEFEFGFS EJSFDU@UP@TUPSBHF TQFDJBMJ[FEOP UVQMF@FYQSJNQMJDJUUZQF MPDBUJPOEFGFSTXJGUSBOHF<EFGFSTXJGUMJOF> DBMM@FYQSUZQFOVMM VOSFTPMWFE@EFDM@SFG@FYQSUZQFOVMMOBNFQSJOUTQFDJBMJ[FEOP QBSFO@FYQSUZQFOVMM TUSJOH@MJUFSBM@FYQSUZQFOVMMFODPEJOHVUGWBMVF*OJUJBM QBUUFSO@CJOEJOH@EFDM QBUUFSO@OBNFEWBMVF JOUFHFS@MJUFSBM@FYQSUZQFOVMMWBMVF WBS@EFDMWBMVFUZQFOVMMUZQFMFUTUPSBHF@LJOETUPSFE 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ ίʔυΛ5ZQF$IFDLͯ͠ΈΔ ⾣ TXJGUDEVNQBTUEFGFSTXJGUcPQFOG EFGFS@TUNU GVOD@EFDMJNQMJDJUEFGFS UZQF BDDFTTQSJWBUF DBQUVSFT WBMVFEJSFDUOPFTDBQF QBSBNFUFS@MJTU EFDMSFG@FYQSUZQF "OZ TFQBSBUPS4USJOH UFSNJOBUPS4USJOH MPDBUJPOEFGFSTXJGUSBOHF<EFGFSTXJGUMJOF>EFDM4XJGU GJMF QSJOU @TFQBSBUPSUFSNJOBUPS TQFDJBMJ[FEOP TUSJOH@MJUFSBM@FYQSUZQF @CVJMUJO4USJOH-JUFSBM#VJMUJO3BX1PJOUFS VUG$PEF6OJU$PVOU #VJMUJO8PSE JT"4$**#VJMUJO*OU MPDBUJPOEFGFSTXJGUSBOHF<EFGFSTXJGUMJOF> FODPEJOHVUGWBMVF%FGFSSFE MJOF>EFDMEFGFS GJMF UPQMFWFMDPEFWBMVF!EFGFSTXJGUEJSFDU@UP@TUPSBHF TQFDJBMJ[FEOP TUSJOH@MJUFSBM@FYQSUZQF @CVJMUJO4USJOH-JUFSBM#VJMUJO3BX1PJOUFS VUG$PEF6OJU$PVOU #VJMUJO8PSE JT"4$**#VJMUJO*OU MPDBUJPOEFGFSTXJGUSBOHF<EFGFSTXJGUMJOF> FODPEJOHVUGWBMVF*OJUJBM 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ ίʔυΛ3BX4*-ʹมͯ͠ΈΔ ⾣ TXJGUDFNJUTJMHFOEFGFSTXJGUcPQFOG TJM@TUBHFSBX JNQPSU#VJMUJO JNQPSU4XJGU JNQPSU4XJGU4IJNT TJM@TDPQF\QBSFOU!NBJO!DPOWFOUJPO D *OU 6OTBGF.VUBCMF1PJOUFS0QUJPOBM6OTBGF.VUBCMF1PJOUFS*OU *OU^ TJM@TDPQF\MPDEFGFSTXJGUQBSFOU^ NBJO TJM!NBJO!DPOWFOUJPO D *OU 6OTBGF.VUBCMF1PJOUFS0QUJPOBM6OTBGF.VUBCMF1PJOUFS*OU *OU\ VTFS VTFS CC *OU 6OTBGF.VUBCMF1PJOUFS0QUJPOBM6OTBGF.VUBCMF1PJOUFS*OU GVODUJPO@SFG@TUEMJC@EJE&OUFS.BJO BSHD*OU BSHW 6OTBGF.VUBCMF1PJOUFS6OTBGF.VUBCMF1PJOUFS*OU GVODUJPO@SFG!@5'T@TUEMJC@EJE&OUFS.BJO'5BSHD7T*OUBSHW(4Q(4R(4Q7T*OU@@@@5@ !DPOWFOUJPO UIJO *OU 6OTBGF.VUBCMF1PJOUFS0QUJPOBM6OTBGF.VUBCMF1PJOUFS*OU 4XJGU1SFWJFX
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ EFGFSͷ֘Օॴʹ ⾣ ಠཱͨؔ͠ͱͯ͠ఆٛ͞Ε͍ͯΔ EFGFS TJMTIBSFE!@5'EFGFS-@EFGFSG5@5@!DPOWFOUJPO UIJO *OU \ VTFST CC *OU JOJU@FYJTUFOUJBM@BEES QSPUPDPM 4USJOH MPDEFGFSTXJGU TDPQFVTFS GVODUJPO@SFG4USJOHJOJU @CVJMUJO4USJOH-JUFSBM#VJMUJO3BX1PJOUFS VUG$PEF6OJU$PVOU#VJMUJO8PSE JT"4$**#VJMUJO*OU 4USJOH GVODUJPO@SFG!@5'44$G5@CVJMUJO4USJOH-JUFSBM#QVUG$PEF6OJU$PVOU#XJT"4$**#J@@44 !DPOWFOUJPO NFUIPE #VJMUJO3BX1PJOUFS #VJMUJO8PSE #VJMUJO*OU !UIJO4USJOH5ZQF !PXOFE4USJOH MPDEFGFSTXJGU TDPQFVTFS NFUBUZQF!UIJO4USJOH5ZQF MPDEFGFSTXJGU TDPQFVTFS TUSJOH@MJUFSBMVUG%FGFSSFE MPDEFGFSTXJGU TDPQFVTFS JOUFHFS@MJUFSBM#VJMUJO8PSE MPDEFGFSTXJGU TDPQFVTFS JOUFHFS@MJUFSBM#VJMUJO*OU MPDEFGFSTXJGU TDPQFVTFS BQQMZ !DPOWFOUJPO NFUIPE #VJMUJO3BX1PJOUFS #VJMUJO8PSE #VJMUJO*OU !UIJO4USJOH5ZQF !PXOFE4USJOH MPDEFGFSTXJGU TDPQFVTFS MPDEFGFSTXJGU TDPQF UVQMF TDPQFVTFS SFUVSO TDPQFJE 4XJGU1SFWJFX ^
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ EFGFSͷͼݺग़͞ΕΔՕॴʹ ⾣ มఆٛΑΓͼݺʹޙग़͞Ε͍ͯΔ NBJO TJM!NBJO!DPOWFOUJPO D *OU 6OTBGF.VUBCMF1PJOUFS0QUJPOBM6OTBGF.VUBCMF1PJOUFS*OU *OU\ JOJU@FYJTUFOUJBM@BEES QSPUPDPM 4USJOH MPDEFGFSTXJGU TDPQFVTFS GVODUJPO@SFG4USJOHJOJU @CVJMUJO4USJOH-JUFSBM#VJMUJO3BX1PJOUFS VUG$PEF6OJU$PVOU#VJMUJO8PSE JT"4$**#VJMUJO*OU 4USJOH GVODUJPO@SFG!@5'44$G5@CVJMUJO4USJOH-JUFSBM#QVUG$PEF6OJU$PVOU#XJT"4$**#J@@44 !DPOWFOUJPO NFUIPE #VJMUJO3BX1PJOUFS #VJMUJO8PSE #VJMUJO*OU !UIJO4USJOH5ZQF !PXOFE4USJOH MPDEFGFSTXJGU TDPQFVTFS NFUBUZQF!UIJO4USJOH5ZQF MPDEFGFSTXJGU TDPQFVTFS TUSJOH@MJUFSBMVUG*OJUJBM MPDEFGFSTXJGU TDPQFVTFS JOUFHFS@MJUFSBM#VJMUJO8PSE MPDEFGFSTXJGU TDPQFVTFS JOUFHFS@MJUFSBM#VJMUJO*OU MPDEFGFSTXJGU TDPQFVTFS GVODUJPO@SFG EFGFS GVODUJPO@SFG!@5'EFGFS-@EFGFSG5@5@!DPOWFOUJPO UIJO *OU MPDEFGFSTXJGU TDPQFVTFS BQQMZ !DPOWFOUJPO UIJO *OU MPDEFGFSTXJGU TDPQF JOUFHFS@MJUFSBM#VJMUJO*OU TDPQFVTFS TUSVDU*OU #VJMUJO*OU TDPQFVTFS SFUVSO*OU TDPQFJE 4XJGU1SFWJFX ^
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ ͔֬ΊͯΈΔ ⾣ ίʔυΛ--7.*3ʹมޭʂ ⾣ TXJGUDFNJUJSEFGFSTXJGUcPQFOG .PEVMF*% TPVSDF@GJMFOBNF UBSHFUEBUBMBZPVUFNPJGO4 UBSHFUUSJQMFY@BQQMFNBDPTY 7T*OUUZQF\J^ (4R(4Q(4R(4Q7T*OU@@@@UZQF\<YJ>^ 74$@4XJGU&NQUZ"SSBZ4UPSBHFUZQF\74$)FBQ0CKFDU 74$@4XJGU"SSBZ#PEZ4UPSBHF^ 74$)FBQ0CKFDUUZQF\(427T0QBRVF1PJOUFS@ 74$4USPOH3FG$PVOU 74$8FBL3FG$PVOU^ (427T0QBRVF1PJOUFS@UZQF\<YJ>^ 74$4USPOH3FG$PVOUUZQF\7T6*OU^ 7T6*OUUZQF\J^ 74$8FBL3FG$PVOUUZQF\7T6*OU^ 74$@4XJGU"SSBZ#PEZ4UPSBHFUZQF\4J 4V^ 4JUZQF\J^ 4VUZQF\J^ TXJGUUZQFUZQF\J^ TXJGUQSPUPDPMUZQF\J J J J J J J J J J J J J^ TXJGUCSJEHFUZQFPQBRVF QSPUPDPMUZQF\<YJ> TXJGUUZQF ^ 44UZQF\7T@4USJOH$PSF^ 4XJGU1SFWJFX
௨աͨ͠ʂ ɾ㱼ɾ
ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ 88%$ऴྃޙɺࣗͳΓʹ؍ ⾣ EFGFSʹ͍ͭͯ5ZQF$IFDLFS͕ ಛผѻ͍͍ͯ͠ΔΑ͏ʹ͑ݟΔ ⾣ EFGFSͷૠೖҐஔ͕ௐ͞ΕΔ͜ͱͰɺ มએݴΑΓ͖Ͱߦ࣮ʹޙΔ༷ࢠ ⾣ ఆٛલͷม"45 5ZQFͷஈ֊Ͱʜ w EFGFSͷมܕใ͕༩͞ΕΔ w EFGFS֎ͷఆٛલʹ༩͞Εͳ͍ EFGFSͷ֎ͰએݴલͷมΛ͏ͱʜ w 1BSTFS௨ա w ͨͩ͠5ZQF$IFDLFSͰΤϥʔ FSSPS@UZQF ⾣ ⾣ ఆٛલͷมͰ͑Δཧ༝͕Α͘Θ͔ͬͨʂ ⾣ 5ZQF$IFDLFSͷෆඋͷՄೳੑࣺ͖ͯΕͳ͍ʁ
ࣗগ͠૾Ͱ͖ΔΑ͏ʹͳͬͨʂ ͍͠خʂ
4XJGU0QFO)PVST ϥϘͰ࣭ͨ͜͠ͱʢ࠶ܝʣ ྻ͕ࢠڍ-PXFS$BNFM$BTFʹͳͬͨ۩ମతͳཧ༝ʁ !TXJGU@NJHSBUJPOଐੑͷ͍ํΛΓ͍ͨ *60ଐੑೖΕࢠʹͰ͖ͳ͍ͣͳͷʹ ೖΕࢠʹͰ͖Δ߹͕͋Δͷͳͥʁ $PMMFDUJPOͰJOEFY BGUFS ͕ඞਢʹͳͬͨཧ༝ʁ TPVSDF-PDBUJPOͱpMF࿈ಈ͠ͳ͍ͷʁ ETPIBOEMF࣮ߦ࣌ΤϥʔʹͳΔ͕ɺͲ͏͏ͷ͔ ͳͥEFGFSͰએݴલͷม͕͑Δͷ͔ !DPOWFOUJPOͷ༻్Λ͏গ͠ৄ͘͠Γ͍ͨ ධՁࣜʹର͢ΔTFMGͲ͏͍͏ޮೳ͕͋Δͷ͔ ʹܕର͢ΔTFMGΛলུͰ͖Δ߹͕͋Δͷͳͥʁ !XBSO@VOVTF@SFTVMU͕1MBZHSPVOEͰޮ͔ͳ͍ཧ༝ʁ
88%$ ͱָ͍ͬͯ͠
Έͳ͞Μɺͥͻ࣍ճࢀՃͯ͠ ଘʹ-BCΛຬ٤ͯ͠Έ͍ͯͩ͘͞ʂ
Enjoy! Swift /* Thank you */