Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EngineerX.go#2 - A Tour of Goで一緒にGo入門 : メソッドとイン...

Avatar for Fumi Fumi
October 26, 2019

EngineerX.go#2 - A Tour of Goで一緒にGo入門 : メソッドとインタフェース編 -

# イベント
EngineerX.go#2
A Tour of Goで一緒にGo入門とNISAのお話
https://engineerx-go.connpass.com/event/151437/

## イベント概要
合同会社TsujiTechが主催するEngineerXは、『エンジニア×異種業界 の勉強会』を開催しているグループです。
ここでのエンジニアとは、技術を使ってモノを作り出す方を指し、異種業界はそれ以外の活動をしている方を指します。
私たちは、「エンジニアが世界を創る」と意識し、エンジニアに成長・活躍する場を提供します。
本勉強会を通して、技術の向上だけでなく、新しいサービスが生まれたり、開発の仲間を見つけたり、独立・副業をする際に気になるお金の話や法律の話などを聞ける士業をされている方と交流したりできるようにしたいと考えています。

その中でGoの勉強会に特化したのがEngineerX.goです。
一緒にGoを勉強して、Gophersとして確かな力をつけるのが目的です。

# 概要
今回は「A Tour of Go」を通してGoに入門しよう!っという内容です。
「A Tour of Go」の基本構文を取り扱いました。

Avatar for Fumi

Fumi

October 26, 2019
Tweet

More Decks by Fumi

Other Decks in Programming

Transcript

  1. A T O U R O F G O Ұ

    ॹ ʹ ( 0 ͷ ੈ ք Λ ๯ ݥ ͠ Α ͏ ʂ EngineerX.go #2 5IF(PQIFSDIBSBDUFSJTCBTFEPOUIF(PNBTDPUEFTJHOFECZ3FOÉF'SFODI
  2. • جຊߏจ – ύοέʔδɺม਺ɺؔ਺ – ੍ޚจɿGPS JG FMTF TXJUDI EFGFS

    – ͦͷଞͷܕɿTUSVDU TMJDFT NBQT • ϝιουͱΠϯλϑΣʔε – ϝιουͱΠϯλϑΣʔε • ฒߦੑ – ฒߦੑ A TOUR OF GO ҰॹʹGOͷੈքΛ๯ݥ͠Α͏ʂ "5PVSPG(Pͷߏ੒
  3. • جຊߏจ – ύοέʔδɺม਺ɺؔ਺ – ੍ޚจɿGPS JG FMTF TXJUDI EFGFS

    – ͦͷଞͷܕɿTUSVDU TMJDFT NBQT • ϝιουͱΠϯλϑΣʔε – ϝιουͱΠϯλϑΣʔε • ฒߦੑ – ฒߦੑ A TOUR OF GO ҰॹʹGOͷੈքΛ๯ݥ͠Α͏ʂ લ ճ · Ͱ ͷ ൣ ғ "5PVSPG(Pͷߏ੒
  4. • جຊߏจ – ύοέʔδɺม਺ɺؔ਺ – ੍ޚจɿGPS JG FMTF TXJUDI EFGFS

    – ͦͷଞͷܕɿTUSVDU TMJDFT NBQT • ϝιουͱΠϯλϑΣʔε – ϝιουͱΠϯλϑΣʔε • ฒߦੑ – ฒߦੑ A TOUR OF GO ҰॹʹGOͷੈքΛ๯ݥ͠Α͏ʂ ຊ ೔ ͷ ൣ ғ "5PVSPG(Pͷߏ੒
  5. 1BDLBHF WBSJBCMFT BOEGVODUJPOT 1BDLBHFT *NQPSUT &YQPSUFEOBNFT 'VODUJPOT 'VODUJPOTDPOUJOVFE .VMUJQMFSFTVMUT /BNFESFUVSOWBMVFT

    7BSJBCMFT 7BSJBCMFTXJUIJOJUJBMJ[FST 4IPSUWBSJBCMFEFDMBSBUJPOT #BTJDUZQFT ;FSPWBMVFT 5ZQFDPOWFSTJPOT 5ZQFJOGFSFODF $POTUBOUT /VNFSJD$POTUBOT લճ·Ͱͷൣғ Gopher Artwork by Ashley McNamara
  6. 'MPXDPOUSPMTUBUFNFOUT GPS JG FMTF TXJUDIBOEEFGFS 'PS 'PSDPOUJOVFE 'PSJT(P`TlXIJMFz 'PSFWFS *G

    *GXJUIBTIPSUTUBUFNFOU *GBOEFMTF 4XJUDI 4XJUDIFWBMVBUJPOPSEFS 4XJUDIXJUIOPDPOEJUJPO %FGFS 4UBDLJOHEFGFST લճ·Ͱͷൣғ Gopher Artwork by Ashley McNamara
  7. .PSFUZQFT TUSVDUT TMJDFT BOENBQT 1PJOUFST 4USVDUT 4USVDU'JFMET 1PJOUFSTUPTUSVDUT 4USVDU-JUFSBMT "SSBZT

    4MJDFT 4MJDFTBSFMJLFSFGFSFODFTUPBSSBZT 4MJDFTMJUFSBMT 4MJDFTEFGBVMUT 4MJDFTMFOHUI /JMTMJDFT $SFBUJOHBTMJDFXJUINBLF 4MJDFTPGTMJDFT "QQFOEJOHUPBTMJDF 3BOHF 3BOHFDPOUJOVFE .BQT .BQMJUFSBMT .BQMJUFSBMTDPOUJOVFE .VUBUJOH.BQT 'VODUJPOWBMVFT 'VODUJPODMPTVSFT લճ·Ͱͷൣғ Gopher Artwork by Ashley McNamara
  8. INTERFACES ARE IMPLEMENTED IMPLICITLY ͜ͷϝιου͸5ܕ͸ JOUFSGBDF*Λ࣮૷͍ͯ͠Δ͜ͱ Λҙຯ͍ͯ͠Δ ͔͠͠ɺ࣮૷͍ͯ͠Δ͜ͱΛ ໌ࣔతʹએݴ͢Δඞཁ͕ͳ͍ OBNFTQBDF4BNQMF\

    JOUFSGBDF*\ WPJE.  ^  DMBTT5*\ QVCMJDWPJE. \ ^ ^ ^ $ $Ͱ͸ 5Ϋϥε͸JOUFSGBDF*Λ ࣮૷͍ͯ͠Δ͜ͱΛ ໌ࣔతʹએݴ͍ͯ͠Δ ଞݴޠͱͷൺֱ
  9. INTERFACE VALUES WITH NIL UNDERLYING VALUES ˠOJM ˠ5ϙΠϯλܕͷ ɹ.ϝιουΛݺͼग़͢ U͸OJMͷͨΊɺ

    .ϝιουͷϨγʔό͸ OJMͱͳΔ ग़ ྗ ݁ Ռ OJMϨγʔόͰݺͼग़͞ΕΔ͜ͱ Λద੾ʹॲཧ͍ͯ͠Δ
  10. ग़ ྗ ݁ Ռ NIL INTERFACE VALUES JOUFSGBDFܕͷ ॳظԽ͞Ε͍ͯͳ͍ม਺ͷ஋͸OJMͰ͋Δ ͜ͷม਺͸ɺ·ͩ஋΋۩৅ܕ΋อ࣋͠ͳ͍

    ͜ͷ··ͰϝιουΛݺͼग़͢ͱɺ Ͳͷ۩ମతͳϝιουΛݺͼग़͔͢Λࣔ͢ܕ৘ใ͕ JOUFSGBDFλϓϧ಺ʹͳ͍ͨΊɺ࣮ߦ࣌ΤϥʔʹͳΔ
  11. ERRORS (PͷϓϩάϥϜͰ͸ Τϥʔঢ়ଶΛFSSPS஋Ͱද͢ FSSPSܕ͸ ૊ࠐ CVJMUJO JOUFSGBDFͰ GNU4USJOHFSʹܗ͕ࣅ͍ͯΔ ༨ஊɿ GNU4USJOHFSಉ༷ʹɺ

    GNUύοέʔδ͸ɺ ஋Λग़ྗ͢Δ࣌FSSPSJOUFSGBDFΛ୳͢ ؔ਺͸ଟ͘ͷ৔߹Τϥʔ஋Λฦ͠ɺ ݺͼग़͠ίʔυ͸ Τϥʔ͕OJMʹ౳͍͔͠Ͳ͏͔Λςετ͢Δ͜ͱͰ ΤϥʔΛॲཧ͢Δඞཁ͕͋Δ OJMFSSPS͸੒ޭΛࣔ͠ɺඇOJMFSSPS͸ࣦഊΛࣔ͢
  12. READERS JPύοέʔδ͸ɺ σʔλͷετϦʔϜͷಡΈऔΓऴྃΛද͢ JP3FBEFSJOUFSGBDFΛنఆ͍ͯ͠Δ (Pඪ४ϥΠϒϥϦʹ͸ɺ ϑΝΠϧɺωοτϫʔΫ઀ଓɺ ίϯϓϨοαʔɺ҉߸ͳͲ ΛؚΉ͜ΕΒͷJOUFSGBDFͷ ଟ͘ͷ࣮૷ؚ͕·Ε͍ͯΔ JP3FBEFSJOUFSGBDFʹ͸

    3FBEϝιου͕͋Δ 3FBE͸ɺ ࢦఆ͞ΕͨόΠτεϥΠεʹσʔλΛಡΈࠐΈɺ ಡΈࠐ·ΕͨόΠτ਺ͱΤϥʔ஋Λฦ͢͠ ετϦʔϜ͕ऴྃ͢ΔͱɺJP&0'ΤϥʔΛฦ͢ ग़ྗ݁Ռ
  13. ҰॹʹಡΉͱྑ͍هࣄ  w GVODܦ༝ͰJOUFSGBDFܕʹOJMΛೖΕΔͱɺOJMѻ͍ʹͳΒͳ͍ɻ IUUQTRJJUBDPNSFJLJJUFNTGFBDFBEE  w (PMBOHͷOJMʹ͍ͭͯ IUUQTDISJTUJOBIBUFOBCMPHDPNFOUSZ 

    w CVJMEXFCBQQMJDBUJPOXJUIHPMBOH IUUQTHJUIVCDPNBTUBYJFCVJMEXFCBQQMJDBUJPOXJUIHPMBOHCMPCNBTUFSKBQSFGBDFNE  w (PݴޠۭΠϯλʔϑΣʔεͱܕΞαʔγϣϯ IUUQTCMPHZZVLJOFUFOUSZ  w (PMBOH଎शJOUFSGBDF\^ܕͱJOUFSGBDF IUUQTRJJUBDPNTIUBUTVOPJUFNTDDFBFBGEGEG 
  14. THANKS • "5PVSPG(P IUUQUPVSHPMBOHPSH  • "5PVSPG(P ೔ຊޠ຋༁൛  IUUQTHPUPVSKQBQQTQPUDPN

     • HPQIFSJ[FNF IUUQTHPQIFSJ[FNF  • FHPOFMCSFHPQIFST IUUQTHJUIVCDPNFHPOFMCSFHPQIFST  • BTIMFZNDOBNBSBHPQIFST IUUQTHJUIVCDPNBTIMFZNDOBNBSBHPQIFST