-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

Go»y¨¥±q¤Jªù¨ì¶i¶¥¹ê¾Ô

( ²Åé ¦r)
§@ªÌ¡G®}ªi ½sµÛÃþ§O¡G1. -> µ{¦¡³]­p -> Go»y¨¥
ĶªÌ¡G
¥Xª©ªÀ¡G¾÷±ñ¤u·~¥Xª©ªÀGo»y¨¥±q¤Jªù¨ì¶i¶¥¹ê¾Ô 3dWoo®Ñ¸¹¡G 49178
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¯Ê®Ñ¡j
NT°â»ù¡G 495 ¤¸

¥Xª©¤é¡G6/1/2018
­¶¼Æ¡G398
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787111598244
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

¡@¡@²{¤µ¡A¦h®ÖCPU¤w¸g¦¨¬°ªA°È¾¹ªº¼Ð°t¡C¦ý¬O¹ï¦h®Öªº¹Bºâ¯à¤O«õ±¸¤@ª½¥Ñµ{§Ç­û¤H¤u³]­pºâªk¤Î®Ø¬[¨Ó§¹¦¨¡C³o­Ó¹Lµ{»Ý­n¶}µo¤H­û¨ã¦³¤@©wªº¦}µo³]­p¤Î®Ø¬[³]­p¯à¤O¡CÁöµM¤@¨Ç½sµ{»y¨¥ªº®Ø¬[¦b¤£Â_¦a´£°ª¦h®Ö¸ê·½¨Ï¥Î®Ä²v¡A¦pJavaªºNettyµ¥¡A¦ý¤´µM»Ý­n¶}µo¤H­ûªá¶O¤j¶qªº®É¶¡©Mºë¤O·dÀ´³o¨Ç®Ø¬[ªº¹B¦æ­ì²z¦Z¤~¯à¼ô½m´x´¤¡C

¡@¡@Go»y¨¥¦b¦h®Ö¦}µo¤W¾Ö¦³­ì¥Íªº³]­pÀu¶Õ¡CGo»y¨¥±q2009¦~11¤ë¶}·½¡A2012¦~µo¥¬Go 1.0í©wª©¥»¥H¨Ó¡A¤w¸g¾Ö¦³¬¡ÅDªºªÀ°Ï©M¥þ²y²³¦h¶}µoªÌ¡A¦}¥B»PÄ«ªG¤½¥qªºSwift¤@¼Ë¡A¦¨¬°·í«e«D±`¬y¦æªº¶}µo»y¨¥¤§¤@¡C«Ü¦h¤½¥q¡A¯S§O¬O¤¤°êªº¤¬Ápºô¤½¥q¡A§Y±N©ÎªÌ¤w¸g§¹¦¨¤F¨Ï¥ÎGo»y¨¥§ï³y¨t²Îªº¹Lµ{¡C¸g¹LGo»y¨¥­«ºcªº¨t²Î¯à¨Ï¥Î§ó¤Öªºµw¥ó¸ê·½¦Ó¦³§ó°ªªº¦}µo©MI/O§]¦Rªí²{¡C

¡@¡@Go»y¨¥Â²³æ©ö¾Ç¡A¾Ç²ß¦±½u¥­½w¡A¤£»Ý­n¹³C/C++»y¨¥°Ê»³»Ý­n¨â¨ì¤T¦~ªº¾Ç²ß´Á¡CGo»y¨¥³QºÙ¬°¡§¤¬Ápºô®É¥NªºC»y¨¥¡¨¡C¤¬Ápºôªºµu¡BÀW¡B§Ö¯S©Ê¦bGo»y¨¥¤¤Åé²{±o²OºvºÉ­P¡C¤@­Ó¼ô½mªº¶}µoªÌ¥u»Ý­nµuµuªº¤@©P®É¶¡´N¥i¥H±q¾Ç²ß¶¥¬qÂà¨ì¶}µo¶¥¬q¡A¦}§¹¦¨¤@­Ó°ª¦}µoªºªA°È¾¹¶}µo¡C

¡@¡@­±¹ïGo»y¨¥ªº´¶¤Î©M¾Ç²ß¼ö¼é¡A¥»®Ñ¨Ï¥Î²LÅã©öÀ´ªº»y¨¥¡A¤¶²Ð¤FGO»y¨¥±q°ò¦ªº»yªkª¾ÃѨì¦}µo©M±µ¤fµ¥·s¯S©Êª¾ÃÑ¡A±q¦Ó±a»âŪªÌ¨³³t¼ô±x³oªù·s®É¥Nªº½sµ{»y¨¥¡C

¥»®Ñ¯S¦â

¡@¡@1. ´£¨Ñ¦P¨B°t®Mªº±Ð¾ÇµøÀW

¡@¡@¬°¤FÅýŪªÌ§ó¦n¦a¾Ç²ß¥»®Ñ¡A§@ªÌ¬°®Ñ¤¤ªº­«ÂI¤º®e¿ý¨î¤F°t®M±Ð¾ÇµøÀW¡A­É§U³o¨ÇµøÀW¡AŪªÌ¥i¥H§ó»´ªQ¦a¾Ç²ß¡C

¡@¡@§@ªÌ´¿¸g¬°¼}½Òºôªº±M·~µøÀW¨î§@´£¨Ñ«ü¾É¡A¦}¦b¼}½Òºô°µ¹L¦h´ÁGo»y¨¥¡BUnity 3D´åÀ¸¤ÞÀº©MCocos´åÀ¸¤ÞÀºµ¥ºôµ¸±Ð¾Ç°ö°V¡A¨ü¨ì²³¦h¶}µoªÌªº«C·ý¤Î¦nµû¡C§Æ±æŪªÌ¯à°÷³q¹L§@ªÌ¿ý¨îªºµøÀW»´ªQ¦a¾Ç²ßGo»y¨¥¡C

¡@¡@2. ¨Ó¦Û¤@½uªº¶}µo¸gÅç¤Î¹ê¾Ô¨Ò¤l

¡@¡@¥»®Ñ¤¤ªº¤j¦h¼Æ¨Ò¤l¤Î¥N½X³£¨Ó¦Û¤_§@ªÌ¦h¦~ªº¤f­z±Ð¾Ç©M§Þ³N¤À¨É·|µ¥¹ê½î¡A¨ü¨ì¤F²³¦h¶}µoªÌªº¤@­P¦nµû¡C¦P®É¡A§@ªÌ¥»¤H¤]¬O¤@¦W¶}·½·R¦nªÌ¡A½s¼g¤F·~¤ºµÛ¦Wªºcellnetºôµ¸®w¡C¥»®Ñ±N¬°ÅªªÌ¤¶²Ðcellnetªº¬[ºc©M³]­p«ä·Q¡A¥HÀ°§UŪªÌ­åªRcellnet¤º³¡ªº¹B¦æ¾÷¨î¡A±q¦ÓÅýŪªÌ¯à¤è«K¦a¨Ï¥Îcellnet§Ö³t¹ê²{·~°ÈÅÞ¿è¡C

¡@¡@3. ²LÅã©öÀ´ªº»y¨¥¡BIJÃþ®Ç³qªºÁ¿¸Ñ¡B´`§Çº¥¶iªºª¾ÃÑÅé¨t

¡@¡@¥»®Ñ¦b¤º®e½s±Æ¤WºÉ¶q°µ¨ì³q«U©öÀ´¡F¦bÁ¿¸Ñ¤@¨Ç±`¨£½sµ{»y¨¥¯S©Ê®É¡A±NGo»y¨¥©M¨ä¥L¦hºØ»y¨¥ªº¯S©Ê¶i¦æ¹ï¤ñ¡AÅý´x´¤¦hºØ½sµ{»y¨¥ªº¶}µoªÌ¯à¨³³t²z¸ÑGo»y¨¥ªº¯S©Ê¡CµL½×¬Oªì¾ÇªÌ¡AÁÙ¬O¤[¸g¡§¨F³õ¡¨ªº¦Ñµ{§Ç­û¡A³£¯à³q¹L¥»®Ñ§Ö³t¾Ç²ßGo»y¨¥ªººëµØ¡C

¡@¡@4. ¤º®e¥þ­±¡A¹ê¥Î©Ê±j

¡@¡@¥»®Ñ¸Ô²Ó¤¶²Ð¤F§@ªÌºë¤ß¬D¿ïªº¦h­Ó¹ê¥Î©Ê«Ü±jªº¨Ò¤l¡A¦pJSON¦ê¦æ¤Æ¡B¦³­­ª¬ºA¾÷¡]FSM¡^¡BTCPÖߥ]³B²z¡BEchoªA°È¾¹©M¨Æ¥ó¨t²Îµ¥¡CŪªÌ¬J¥i¥H±q¨Ò¤l¤¤¾Ç²ß¦}²z¸ÑGo»y¨¥ªºª¾ÃÑÂI¡AÁÙ¥i¥H±N³o¨Ç¨Ò¤lÀ³¥Î¤_¹ê»Ú¶}µo¤¤¡C

¥»®Ñ¤º®e

¡@¡@²Ä1³¹ ªìÃÑGo»y¨¥

¡@¡@¥»³¹¥D­n¤¶²Ð¤F¥H¤U¤º®e¡G

¡@¡@¡]1¡^Go»y¨¥ªº¯S©Ê¡F

¡@¡@¡]2¡^¨Ï¥ÎGo»y¨¥ªº¶}·½¶µ¥Ø¡F

¡@¡@¡]3¡^¦w¸ËGo»y¨¥¶}µo¥]©M·f«Ø¨ä¶}µoÀô¹Ò¡C

¡@¡@²Ä2³¹ Go»y¨¥°ò¥»»yªk»P¨Ï¥Î

¡@¡@¥»³¹¥D­n¤¶²Ð¤FGo»y¨¥ªº°ò¥»»yªk¡A¦pÅܶq¡B¦UºØ±`¨£¼Æ¾ÚÃþ«¬¤Î±`¶q¡A¦¹¥~ÁÙ¤¶²Ð¤FGo 1.9ª©¥»¤¤·s²K¥[ªº¯S©Ê¡A§YÃþ«¬§O¦W¡C

¡@¡@²Ä3³¹ ®e¾¹¡G¦sÀx©M²Õ´¼Æ¾Úªº¤è¦¡

¡@¡@¥»³¹¤¶²Ð¤FGo»y¨¥½sµ{ºâªk¤¤±`¥Îªº®e¾¹¡A¦p¼Æ²Õ¡B¤Á¤ù¡B¬M®g¡A¥H¤Î¦Cªíªº³Ð«Ø¡B³]¸m¡BÀò¨ú¡B¬d¸ß©M¹M¾úµ¥¾Þ§@¡C

¡@¡@²Ä4³¹ ¬yµ{±±¨î

¡@¡@¥»³¹¥D­n¤¶²Ð¤F±`¨£ªº±ø¥ó§PÂ_¡B´`Àô©M¤À¤ä»y¥y¡A¥]¬A¥H¤U¤º®e¡G

¡@¡@¡]1¡^±ø¥ó§PÂ_¡]if¡^¡F

¡@¡@¡]2¡^±ø¥ó´`Àô¡]for¡^¡F

¡@¡@¡]3¡^Áä­È´`Àô¡]for range¡^¡F

¡@¡@¡]4¡^¤À¤ä¿ï¾Ü¡]switch¡^¡F

¡@¡@¡]5¡^¸õÂà»y¥y¡]goto¡^¡F

¡@¡@¡]6¡^¸õ¥X´`Àô¡]break¡^©MÄ~Äò´`Àô¡]continue¡^¡C

¡@¡@²Ä5³¹ ¨ç¼Æ¡]function¡^

¡@¡@¥»³¹­º¥ý¤¶²Ð¤FGo»y¨¥¤¤¸û¬°°ò¦ªº¨ç¼ÆÁn©ú®æ¦¡¤Î©R¦Wªð¦^­È¯S©Ê¡FµM¦Z¤¶²Ð¤FGo»y¨¥¤¤¸û¬°ÆF¬¡ªº¯S©Ê¡A§Y¨ç¼ÆÅܶq©M°Î¦W¨ç¼Æ¡FÁÙ¤¶²Ð¤F¤@­Ó®i¥Ü¾Þ§@»P¼Æ¾Ú¤ÀÂ÷ªº¥Ü¨Ò¡G¦r²Å¦êªºÃ즡³B²z¡A±q¦Ó¤Þ¥X¨ç¼Æ³¬¥]·§©À¡F¤§¦Z¤¶²Ð¤FGo»y¨¥¤¤³Ì¨ã¯S¦âªº¦p¤U´X­Ó¥\¯à¡G

¡@¡@¡]1¡^©µ¿ð°õ¦æ»y¥y¡]defer¡^¡X¡X±N»y¥y©µ¿ð¨ì¨ç¼Æ°h¥X®É°õ¦æ¡F

¡@¡@¡]2¡^ÌX¾÷¡]panic¡^¡X¡X²×¤îµ{§Ç¹B¦æ¡F

¡@¡@¡]3¡^ÌX¾÷«ì´_¡]recover¡^¡X¡XÅýµ{§Ç±qÌX¾÷¤¤«ì´_¡C

¡@¡@²Ä6³¹ µ²ºcÅé¡]struct¡^

¡@¡@¥»³¹¤¶²Ð¤FGo»y¨¥¤¤³Ì­«­nªº·§©À¡Gµ²ºcÅé¡C­º¥ýÁ¿¸Ñ¤Fµ²ºcÅé¦hºØÆF¬¡ªº¹ê¨Ò¤Æ©M¦¨­ûªì©l¤Æ¤èªk¡F±µµÛ¨Ï¥Î­±¦V¹ï¶H©M­±¦V¹Lµ{µ¥«ä·Q¡A³v¨B¤¶²Ð¤FGo»y¨¥¤¤ªº¤èªk¤Î·sªº·§©À±µ¦¬¾¹¡FµM¦Z¨Ï¥Î´åÀ¸¤¤¸g¨åªº¦ì¸m²¾°Ê¨Ò¤l¡A®i²{¤Fµ²ºcÅ骺¹ê»Ú¨Ï¥Î¤èªk¡F³Ì¦Z¡A¨Ï¥Î¤j¶q¨Ò¤l¤¶²Ð¤Fµ²ºcÅ餺´O©MÃþ«¬¤º´O¤º®e¡A¦}¦bJSON¼Æ¾Úªº¤ÀÂ÷¹ê¨Ò¤¤ÅéÅçGo»y¨¥ªº¤º´Oµ²ºcÅ骺±j¤j¥\¯à¡C

¡@¡@¥»³¹¤¤ªº¸g¨å¨Ò¤l¡G¨Ï¥Î¨Æ¥ó¨t²Î¹ê²{¨Æ¥óªºÅTÀ³©M³B²z¡X¡X®i²{Go»y¨¥ªº¤èªk»P¨ç¼Æªº²Î¤@½Õ¥Î¹Lµ{¡C

¡@¡@²Ä7³¹ ±µ¤f¡]interface¡^

¡@¡@¥»³¹¤¶²Ð¤FGo»y¨¥±µ¤fªº¦p¤U´X­Óª¾ÃÑÂI¡G

¡@¡@¡]1¡^Án©ú±µ¤f¡F

¡@¡@¡]2¡^¹ê²{±µ¤fªº±ø¥ó¡F

¡@¡@¡]3¡^±µ¤fªº´O®M²Õ¦X¡F

¡@¡@¡]4¡^±µ¤fªºÂà´«¡F

¡@¡@¡]5¡^±µ¤fÃþ«¬Â_¨¥©MÃþ«¬¤À¤ä¡X¡X§PÂ_±µ¤fªºÃþ«¬¡F

¡@¡@¡]6¡^ªÅ±µ¤f¡C

¡@¡@¥»³¹¤¤¯A¤Îªº¨Ò¤l¦³¡G«K¤_ÂX®i¿é¥X¤è¦¡ªº¤é§Ó¨t²Î¡F¨Ï¥Î±µ¤f¶i¦æ¼Æ¾Úªº±Æ§Ç¡F¨Ï¥ÎªÅ±µ¤f¹ê²{¥i¥H«O¦s¥ô·N­Èªº¦r¨å¤Î¹ê²{¦³­­ª¬ºA¾÷¡]FSM¡^µ¥¡C

¡@¡@²Ä8³¹ ¥]¡]package¡^

¡@¡@¥»³¹­º¥ý¤¶²Ð¤Fºc«Ø¤uµ{ªº°ò¦·§©ÀGOPATH¡A±µµÛ¤¶²Ð¤F¥]¡]package¡^ªº³Ð«Ø©M¾É¤J¹Lµ{»P¤èªk¡A¥H¤Î¯à±±¨î³X°ÝÅv­­ªº¾É¥X¥]¤º¼ÐÃѲŪº¤èªk¡C

¡@¡@¥»³¹µ¹¥X¤F¤@­Ó¨å«¬ªº¤u¼t¼Ò¦¡¦Û°Êª`¥U¥Ü¨Ò¡A¤¶²Ð¤F¦h­Ó¥]ªº©w¸q©M¨Ï¥Î¤èªk¡C

¡@¡@²Ä9³¹ ¦}µo

¡@¡@¥»³¹Á¿¸Ñ¤FGo»y¨¥¤¤¦}µoªº¨â­Ó­«­n·§©À¡G»´¶q¯Å½uµ{¡]goroutine¡^©M³q¹D¡]channel¡^¡C­º¥ý¤¶²Ð¤Fgoroutineªº³Ð«Ø¤èªk¤Î¤@¨Ç©M¦}µo¬ÛÃöªº·§©À¡A«K¤_ŪªÌ²z¸Ñgoroutine©M½uµ{ªº°Ï§O»PÁp¨t¡FµM¦Z¤¶²Ð¤F³q¹DªºÁn©ú¡B³Ð«Ø©M¨Ï¥Î¤èªk¡A¨Ï¥Î3­Ó¥Ü¨Ò¡A§Y¼ÒÀÀ»·µ{¹Lµ{½Õ¥Î¡]RPC¡^¡B¨Ï¥Î³q¹DÅTÀ³­p®É¾¹¨Æ¥ó©MTelnet¦^­µªA°È¾¹¡A¨Ó®i¥Ü³q¹Dªº¹ê»Ú¨Ï¥Î¤èªk¡F³Ì¦Z¤¶²Ð¤F¦b¦}µoÀô¹Ò¤Uªº¦P¨B³B²z¤èªk¡A¦p¨Ï¥Î¤¬¥¸Âê©Mµ¥«Ý²Õµ¥¡A¥H¤Î¨Ï¥ÎÄvºAÀË´ú´£«eµo²{¦}µo°ÝÃD¡C

¡@¡@²Ä10³¹ ¤Ï®g

¡@¡@¥»³¹«ö·Ó¤Ï®gªºÃþ§O¤À¬°¨â³¡¤À¡G¤Ï®gÃþ«¬¹ï¶H¡]reflect.Type¡^©M¤Ï®g­È¹ï¶H¡]reflect.Value¡^¡C­º¥ý¤¶²Ð¤F¤Ï®gÃþ«¬ªºÀò¨ú¤Î¹M¾ú¤èªk¡A¦P®É¤¶²Ð¤F¤Ï®gÃþ«¬¹ï¶HÀò¨úµ²ºcÅé¼Ðñªº¤èªk¡F±µµÛ¤¶²Ð¤F¤Ï®g­È¹ï¶HÀò¨ú¤Î­×§ï­È©M¹M¾ú­Èµ¥¡F³Ì¦Z³q¹L¨Ï¥Î¤Ï®g±Nµ²ºcÅé¦ê¦æ¤Æ¬°JSON®æ¦¡¦r²Å¦êªº¥Ü¨Ò¡A¤¶²Ð¤F¤Ï®g¦b¹ê»Ú¤¤ªº¹B¥Î¡C

¡@¡@²Ä11³¹ ½sĶ»P¤u¨ã

¡@¡@¥»³¹¤¶²Ð¤FGo»y¨¥¤¤±`¥Îªº½sĶ¤Î¤u¨ã«ü¥O¡A¨Ò¦p¡G

¡@¡@¡]1¡^go build/go install¡X¡X½sĶ¤Î¦w¸Ë·½½X¡F

¡@¡@¡]2¡^go get¡X¡X»·µ{Àò¨ú¦}¦w¸Ë·½½X¡F

¡@¡@¡]3¡^go test¡X¡X³æ¤¸´ú¸Õ©M°ò·Ç´ú¸Õ®Ø¬[¡F

¡@¡@¡]4¡^go pprof¡X¡X©Ê¯à¤ÀªR¤u¨ã¡C

¡@¡@²Ä12³¹ ¡§Áק|¡¨»P§Þ¥©

¡@¡@¥»³¹­º¥ý¤¶²Ð¤F§@ªÌ¦h¦~¨Ï¥ÎGo»y¨¥ªº¶}µo¸gÅç©M§Þ¥©Á`µ²¡A¥H¤Î¤@¨Ç¨Ï¥ÎGo»y¨¥¤¤¥i¯àµo¥Íªº¿ù»~¤ÎÀu¤Æ«Øij¡A¨Ò¦p¦X²z¨Ï¥Î¦}µo¡B¦b©Ê¯à»PÆF¬¡©Ê¤¤°µ¥X¨úªÙ¦Z¦A¨Ï¥Î¤Ï®gµ¥¡F±µµÛ¤¶²Ð¤FGo»y¨¥¤¤¤@­Ó¤£¬°¤Hª¾ªº¯S©Ê¡X¡Xmapªº¦hÁä¯Á¤Þ¡A§Q¥Î¸Ó¯S©Ê¥i¥H¤è«K¦a¹ï¼Æ¾Ú¶i¦æ¦h­Ó±ø¥óªº¯Á¤Þ¡F³Ì¦Z¤¶²Ð¤F¨Ï¥ÎGo»y¨¥ªºSocket³B²zTCPÖߥ]°ÝÃD¡C

¡@¡@²Ä13³¹ ¹ê¾Ôºt½m¡X¡X­åªRcellnetºôµ¸®w³]­p¦}¹ê²{Socket²á¤Ñ¥\¯à

¡@¡@¥»³¹¤¶²Ð¤Fcellnetºôµ¸®wªº°ò¥»¯S©Ê¡B¬yµ{¡B¬[ºc¤Î¦p¤U´X­ÓÃöÁä·§©À¡G

¡@¡@¡]1¡^³s±µºÞ²z¡F

¡@¡@¡]2¡^·|¸Ü¦¬µo¼Æ¾Ú¬yµ{¡F

¡@¡@¡]3¡^¨Æ¥ó¶¤¦C¡F

¡@¡@¡]4¡^®ø®§½s½X¡F

¡@¡@¡]5¡^®ø®§¤¸«H®§¡F

¡@¡@¡]6¡^±µ¦¬©Mµo°e«Ê¥]¡C

¡@¡@¥»³¹¨Ï¥Îcellnetºôµ¸®w¹ê²{¤F±a¦³²á¤Ñ¥\¯àªº«È¤áºÝ©MªA°È¾¹¡C

¥»®ÑŪªÌ¹ï¶H

* Go»y¨¥ªì¾ÇªÌ¡F

* Go»y¨¥¶i¶¥ÅªªÌ¡F

* ½sµ{ªì¾ÇªÌ¡F

* ¦ZºÝµ{§Çªì¾ÇªÌ¡F

* «eºÝÂà¦ZºÝªº¶}µo¤H­û¡F

* ¼ô±xC/C++¡BJava©MC#»y¨¥¡A·Q¤F¸Ñ©M¾Ç²ßGo»y¨¥ªº½sµ{·R¦nªÌ¡F

* ·Q¥ÎGo»y¨¥§Ö³t¾Ç²ß½s¼gªA°È¾¹ºÝµ{§Çªº¶}µoªÌ¡F

* ¬ÛÃö°ö°V¾Ç­û¡F

* ¦U¤j°|®Õªº¾Ç¥Í¡C

Ãö¤_§@ªÌ

¡@¡@¥»®Ñ¥Ñ®}ªi½s¼g¡A³¢Áo©M±i¾U°Ñ»P¼f®Ö©M®Õ¹ï¡C·PÁ§ڪº©d¤l©M®a¤H¦b§Ú¼g®Ñ´Á¶¡ªº¤j¤O¤ä«ù¡C

¡@¡@¥t¥~¡A¦b¥»®Ñ½s¼g´Á¶¡¡A±o¨ì¤F§d§»°¶¥ý¥Íªº­@¤ß«ü¾É¡A¥L¤@µ·¤£ÎA¡B²Ó­P¤J·L¦a¹ï®Ñ½Z¶i¦æ¤F¼f®Ö©M®Õ¹ï¡A³oÅý¥»®Ñªº±ø²z§ó¥[²M´·¡A»y¨¥§ó¥[³q«U©öÀ´¡C¦b¦¹ªí¥Ü²`²`ªº·PÁ¡I

¡@¡@ÁöµM§Ú­Ì¹ï®Ñ¤¤©Ò­z¤º®e³£ºÉ¶q®Ö¹ê¡A¦}¦h¦¸¶i¦æ¤F¤å¦r®Õ¹ï¡A¦ý¦]®É¶¡©Ò­­¡A¥[¤§¤ô¥­©Ò­­¡A®Ñ¤¤ªº²¨º|©M¿ù»~¦b©ÒÃø§K¡A·q½Ð¼s¤jŪªÌ§åµû«ü¥¿¡C

¡@¡@®}ªi
¤º®e²¤¶¡G

¡]µøÀW±Ð¾Çª©¡^
¥»®Ñªö¥Î¡§²z½×+¹ê¨Ò¡¨ªº½s¼g§Î¦¡¡A³q¹L¤j¶qªº¹ê¨Ò¡A¦}µ²¦X§@ªÌ¦h¦~ªº¤@½u¶}µo¹ê¾Ô¸gÅç¡A¥þ­±¤¶²Ð¤FGo»y¨¥ªº»yªk¤Î¨Ï¥Î¤èªk¡C¥þ®ÑªÃ©Ó¤è«K¾Ç²ß¡B©ö¤_²z¸Ñ¡B«K¤_¬d¸ßªº²z©À½s¼g¦Ó¦¨¡AµL½×¬O·Q¨t²Î¾Ç²ßGo»y¨¥°ò¦ª¾ÃѪºªì¾ÇªÌ¡AÁÙ¬O·Q¶i¶¥´£°ªªº¦³¸gÅç¶}µo¤H­û¡A³£¯à³q¹L¥»®Ñ¨³³t´x´¤Go»y¨¥ªº¦UºØ°ò¦»yªk©M¶}µo§Þ¥©¡C¥»®Ñ§@ªÌ´¿¸g»P¼}½Òºô¦X§@¿ý¨î¹L¬ÛÃöµøÀW½Òµ{¡A¦³Â×´IªºµøÀW¨î§@¸gÅç¡A©Ò¥H¯S·N¬°¥»®Ñ­«ÂI¤º®eºë¤ß¿ý¨î¤F°t®M±Ð¾ÇµøÀW¡A³o±N·¥¤j¦a´£¤ÉŪªÌªº¾Ç²ß®Ä²v¡A¨ú±o¤ñ¦PÃþ¹Ï®Ñ§ó¦nªº¾Ç²ß®ÄªG¡C¥t¥~¡A¥»®ÑÁÙ§K¶O´£¨Ñ¤F®Ñ¤¤¯A¤Îªº¹ê¨Ò·½¥N½X¡A¥H¤è«KŪªÌ¾Ç²ß¡C
¥»®Ñ¤À¬°13³¹¡A¥D­n¤¶²Ð¤FGo»y¨¥ªº¯S©Ê»PÀô¹Ò·f«Ø¡B°ò¥»»yªk»P¨Ï¥Î¡B®e¾¹¡]¦sÀx©M²Õ´¼Æ¾Úªº¤è¦¡¡^¡B¬yµ{±±¨î¡B¨ç¼Æ¡Bµ²ºcÅé¡B±µ¤f¡B¥]¡B¦}µo¡B¤Ï®g¡B½sĶ»P¤u¨ã¡BGoµ{§Ç¶}µo§Þ¥©¡F³Ì¦Zªº¹ê¾Ôºt½m³¡¤À­åªR¤F§@ªÌªº¶}·½ºôµ¸®wcellnetªº¬[ºc¤Î³]­p«ä·Q¡A¦}¥B¹ê²{¤FSocket²á¤Ñ¥\¯à¡C¥»®Ñ¹ï¤_Go»y¨¥ªº¦}µo¯S¦â¥\¯à¦³¥þ­±¡B²`¤JªºÁ¿¸Ñ¡A»Ý­nŪªÌ­«ÂI¾Ç²ß¡C
¥»®Ñµ²ºc²M´·¡A¤º®e³q«U©öÀ´¡A®×¨ÒÂ×´I¡A¹ê¥Î©Ê±j¡A¯S§O¾A¦XGo»y¨¥ªì¾ÇªÌ©M¶i¶¥ÅªªÌ¾\Ū¡C¥t¥~¡A¥»®Ñ¤]¾A¦X§@¬°¬ÛÃö°ö°V¾Ç®Õ©M¦U¤j°|®Õªº±Ð§÷©Î±Ð¾Ç°Ñ¦Ò®Ñ¡C
½s¿è±ÀÂË¡G

¸ê²`µ{§Ç­û¡B¼}½Òºô¯SÁÜÁ¿®v¤À¨É¦h¦~ªºGo»y¨¥¶}µo¸gÅç
¸Ô¸ÑGo»yªk¤Î¶}µo§Þ¥©¡A²`«×­åªR¶}·½ºôµ¸®wcellnetªº³]­p©M¬[ºc«ä·Q
100¤ÀÄÁ°t®M±Ð¾ÇµøÀW¡B72­Ó¶}µo¹ê¨ÒºëÁ¿
¥Î²LÅã©öÀ´ªº»y¨¥Á¿¸Ñ¡A¤£ÅýŪªÌ¦³¤ª¤sÃú¸nªº·Pı
¥Î¤j¶q¹ê¨Ò±a»âŪªÌ¾Ç²ß¡AÅýŪªÌ¦b¹ê»Ú°Ê¤â¤¤´£°ª½sµ{¤ô¥­
µ¹¥X¤F¤j¶qªº¡§Áק|¡¨§Þ¥©¡AÅýŪªÌ¦b¹ê»Ú¶}µo¤¤¤Ö¨«Ås¸ô
¹ê¨Ò¨Ó¦Û¤_§@ªÌ¦h¦~ªº¤f­z±Ð¾Ç©M§Þ³N¤À¨É·|¡A¼s¨ü·~¬É¦nµû
¨C­Ó¹ê¨Òµ{§Ç³£ºë¤ß³]­p¡AÅýGo»y¨¥¾Ç²ßªÌ¤j©I¹LÅ}


¥»®ÑºëµØ¤º®e
ªìÃÑGo»y¨¥
Go»y¨¥°ò¥»»yªk»P¨Ï¥Î
®e¾¹¡G¦sÀx©M²Õ´¼Æ¾Úªº¤è¦¡
¬yµ{±±¨î
¨ç¼Æ¡]function¡^
µ²ºcÅé¡]struct¡^
±µ¤f¡]interface¡^
¥]¡]package¡^
¦}µo
¤Ï®g
½sĶ»P¤u¨ã
¡§Áק|¡¨»P§Þ¥©
¹ê¾Ôºt½m¡X¡X­åªRcellnetºôµ¸®w³]­p¦}¹ê²{Socket²á¤Ñ¥\¯à
¥Ø¿ý¡G

°t®M¾Ç²ß¸ê·½
«e¨¥
²Ä1³¹ ªìÃÑGo»y¨¥ 1
1.1 Go»y¨¥¯S©Ê 1
1.2 ¨Ï¥ÎGo»y¨¥ªº¶µ¥Ø 9
1.3 «ç¼Ë¦w¸ËGo»y¨¥¶}µo¥] 10
1.3.1 Windowsª©¦w¸Ë 11
1.3.2 Linuxª©¦w¸Ë 13
1.4 ·f«Ø¶}µoÀô¹Ò 14
1.4.1 ¶°¦¨¶}µoÀô¹Ò¡X¡XJetbrains GoLand 14
1.4.2 ¤è«K©w¸q¥\¯àªº½s¿è¾¹¡X¡XVisual Studio Code 15
²Ä2³¹ Go»y¨¥°ò¥»»yªk»P¨Ï¥Î 19
2.1 Åܶq 19
2.1.1 Án©úÅܶq 19
2.1.2 ªì©l¤ÆÅܶq 20
2.1.3 ¦h­ÓÅܶq¦P®É½á­È 23
2.1.4 °Î¦WÅܶq¡X¡X¨S¦³¦W¦rªºÅܶq 24
2.2 ¼Æ¾ÚÃþ«¬ 24
2.2.1 ¾ã«¬ 25
2.2.2 ¯BÂI«¬ 25
2.2.3 ¥Ü¨Ò¡G¿é¥X¥¿©¶¨ç¼Æ¡]Sin¡^¹Ï¹³ 26
2.2.4 ¥¬º¸«¬ 28
2.2.5 ¦r²Å¦ê 29
2.2.6 ¦r²Å 31
2.2.7 ¤Á¤ù¡X¡X¯à°ÊºA¤À°tªºªÅ¶¡ 32
2.3 Âà´«¤£¦Pªº¼Æ¾ÚÃþ«¬ 33
2.4 «ü°w 34
2.4.1 »{ÃÑ«ü°w¦a§}©M«ü°wÃþ«¬ 35
2.4.2 ±q«ü°wÀò¨ú«ü°w«ü¦Vªº­È 36
2.4.3 ¨Ï¥Î«ü°w­×§ï­È 37
2.4.4 ¥Ü¨Ò¡G¨Ï¥Î«ü°wÅܶqÀò¨ú©R¥O¦æªº¿é¤J«H®§ 39
2.4.5 ³Ð«Ø«ü°wªº¥t¤@ºØ¤èªk¡X¡Xnew()¨ç¼Æ 40
2.5 Åܶq¥Í©R´Á¡X¡XÅܶq¯à°÷¨Ï¥Îªº¥N½X­S³ò 40
2.5.1 ¤°¤\¬O´Ì 41
2.5.2 ¤°¤\¬O°ï 42
2.5.3 Åܶq°k¶h¡]Escape Analysis¡^¡X¡X¦Û°Ê¨M©wÅܶq¤À°t¤è¦¡¡A´£°ª¹B¦æ®Ä²v 43
2.6 ¦r²Å¦êÀ³¥Î 46
2.6.1 ­pºâ¦r²Å¦êªø«× 46
2.6.2 ¹M¾ú¦r²Å¦ê¡X¡XÀò¨ú¨C¤@­Ó¦r²Å¦ê¤¸¯À 47
2.6.3 Àò¨ú¦r²Å¦êªº¬Y¤@¬q¦r²Å 48
2.6.4 ­×§ï¦r²Å¦ê 49
2.6.5 ³s±µ¦r²Å¦ê 49
2.6.6 ®æ¦¡¤Æ 50
2.6.7 ¥Ü¨Ò¡GBase64½s½X¡X¡X¹q¤l¶l¥óªº°ò¦½s½X®æ¦¡ 51
2.6.8 ¥Ü¨Ò¡G±qINI°t¸m¤å¥ó¤¤¬d¸ß»Ý­nªº­È 52
2.7 ±`¶q¡X¡XùÚ©w¤£Åܪº­È 57
2.7.1 ªTÁ|¡X¡X¤@²Õ±`¶q­È 58
2.7.2 ±NªTÁ|­ÈÂà´«¬°¦r²Å¦ê 59
2.8 Ãþ«¬§O¦W¡]Type Alias¡^ 60
2.8.1 °Ï¤ÀÃþ«¬§O¦W»PÃþ«¬©w¸q 61
2.8.2 «D¥»¦aÃþ«¬¤£¯à©w¸q¤èªk 62
2.8.3 ¦bµ²ºcÅ馨­û´O¤J®É¨Ï¥Î§O¦W 63
²Ä3³¹ ®e¾¹¡G¦sÀx©M²Õ´¼Æ¾Úªº¤è¦¡ 65
3.1 ¼Æ²Õ¡X¡X©T©w¤j¤pªº³sÄòªÅ¶¡ 65
3.1.1 Án©ú¼Æ²Õ 66
3.1.2 ªì©l¤Æ¼Æ²Õ 66
3.1.3 ¹M¾ú¼Æ²Õ¡X¡X³X°Ý¨C¤@­Ó¼Æ²Õ¤¸¯À 67
3.2 ¤Á¤ù¡]slice¡^¡X¡X°ÊºA¤À°t¤j¤pªº³sÄòªÅ¶¡ 67
3.2.1 ±q¼Æ²Õ©Î¤Á¤ù¥Í¦¨·sªº¤Á¤ù 68
3.2.2 Án©ú¤Á¤ù 70
3.2.3 ¨Ï¥Îmake()¨ç¼Æºc³y¤Á¤ù 71
3.2.4 ¨Ï¥Îappend()¨ç¼Æ¬°¤Á¤ù²K¥[¤¸¯À 71
3.2.5 ´_¨î¤Á¤ù¤¸¯À¨ì¥t¤@­Ó¤Á¤ù 73
3.2.6 ±q¤Á¤ù¤¤§R°£¤¸¯À 74
3.3 ¬M®g¡]map¡^¡X¡X«Ø¥ß¨Æª«ÃöÁpªº®e¾¹ 76
3.3.1 ²K¥[ÃöÁp¨ìmap¦}³X°ÝÃöÁp©M¼Æ¾Ú 76
3.3.2 ¹M¾úmapªº¡§Áä­È¹ï¡¨¡X¡X?³X°Ý¨C¤@­Ómap¤¤ªºÃöÁpÃö¨t 77
3.3.3 ¨Ï¥Îdelete()¨ç¼Æ±qmap¤¤§R°£Áä­È¹ï 79
3.3.4 ²MªÅmap¤¤ªº©Ò¦³¤¸¯À 79
3.3.5 ¯à°÷¦b¦}µoÀô¹Ò¤¤¨Ï¥Îªºmap¡X¡X?sync.Map 79
3.4 ¦Cªí¡]list¡^¡X¡X¥i¥H§Ö³t¼W§Rªº«D³sÄòªÅ¶¡ªº®e¾¹ 81
3.4.1 ªì©l¤Æ¦Cªí 83
3.4.2 ¦b¦Cªí¤¤´¡¤J¤¸¯À 83
3.4.3 ±q¦Cªí¤¤§R°£¤¸¯À 84
3.4.4 ¹M¾ú¦Cªí¡X¡X³X°Ý¦Cªíªº¨C¤@­Ó¤¸¯À 85
²Ä4³¹ ¬yµ{±±¨î 87
4.1 ±ø¥ó§PÂ_¡]if¡^ 87
4.2 ºc«Ø´`Àô¡]for¡^ 88
4.2.1 for¤¤ªºªì©l»y¥y¡X¡X¶}©l´`Àô®É°õ¦æªº»y¥y 89
4.2.2 for¤¤ªº±ø¥óªí¹F¦¡¡X¡X±±¨î¬O§_´`Àôªº¶}Ãö 89
4.2.3 for¤¤ªºµ²§ô»y¥y¡X¡X¨C¦¸´`Àôµ²§ô®É°õ¦æªº»y¥y 90
4.3 ¥Ü¨Ò¡G¤E¤E­¼ªkªí 90
4.4 Áä­È´`Àô¡]for range¡^¡X¡Xª½±µÀò±o¹ï¶Hªº¯Á¤Þ©M¼Æ¾Ú 91
4.4.1 ¹M¾ú¼Æ²Õ¡B¤Á¤ù¡X¡XÀò±o¯Á¤Þ©M¤¸¯À 92
4.4.2 ¹M¾ú¦r²Å¦ê¡X¡XÀò±o¦r²Å 92
4.4.3 ¹M¾úmap¡X¡XÀò±omapªºÁä©M­È 92
4.4.4 ¹M¾ú³q¹D¡]channel¡^¡X¡X±µ¦¬³q¹D¼Æ¾Ú 93
4.4.5 ¦b¹M¾ú¤¤¿ï¾Ü§Æ±æÀò±oªºÅܶq 93
4.5 ¤À¤ä¿ï¾Ü¡]switch¡^¡X¡X¾Ö¦³¦h­Ó±ø¥ó¤À¤äªº§PÂ_ 94
4.5.1 °ò¥»¼gªk 95
4.5.2 ¸ó¶Vcaseªºfallthrough¡X¡X­Ý®eC»y¨¥ªºcase³]­p 96
4.6 ¸õÂà¨ì«ü©w¥N½X¼Ðñ¡]goto¡^ 96
4.6.1 ¨Ï¥Îgoto°h¥X¦h¼h´`Àô 96
4.6.2 ¨Ï¥Îgoto¶°¤¤³B²z¿ù»~ 97
4.6.3 ²Î¤@¿ù»~³B²z 98
4.7 ¸õ¥X«ü©w´`Àô¡]break¡^¡X¡X¥i¥H¸õ¥X¦h¼h´`Àô 99
4.8 Ä~Äò¤U¤@¦¸´`Àô¡]continue¡^ 100
²Ä5³¹ ¨ç¼Æ¡]function¡^ 101
5.1 Án©ú¨ç¼Æ 101
5.1.1 ´¶³q¨ç¼ÆªºÁn©ú§Î¦¡ 101
5.1.2 °Ñ¼ÆÃþ«¬ªºÂ²¼g 102
5.1.3 ¨ç¼Æªºªð¦^­È 102
5.1.4 ½Õ¥Î¨ç¼Æ 104
5.1.5 ¥Ü¨Ò¡G±N¡§¬í¡¨¸ÑªR¬°®É¶¡³æ¦ì 104
5.1.6 ¥Ü¨Ò¡G¨ç¼Æ¤¤ªº°Ñ¼Æ¶Ç»¼®ÄªG´ú¸Õ 105
5.2 ¨ç¼ÆÅܶq¡X¡X§â¨ç¼Æ§@¬°­È«O¦s¨ìÅܶq¤¤ 108
5.3 ¥Ü¨Ò¡G¦r²Å¦êªºÃ즡³B²z¡X¡X¾Þ§@»P¼Æ¾Ú¤ÀÂ÷ªº³]­p§Þ¥© 109
5.4 °Î¦W¨ç¼Æ¡X¡X¨S¦³¨ç¼Æ¦W¦rªº¨ç¼Æ 112
5.4.1 ©w¸q¤@­Ó°Î¦W¨ç¼Æ 112
5.4.2 °Î¦W¨ç¼Æ¥Î§@¦^½Õ¨ç¼Æ 113
5.4.3 ¨Ï¥Î°Î¦W¨ç¼Æ¹ê²{¾Þ§@«Ê¸Ë 113
5.5 ¨ç¼ÆÃþ«¬¹ê²{±µ¤f¡X¡X§â¨ç¼Æ§@¬°±µ¤f¨Ó½Õ¥Î 115
5.5.1 µ²ºcÅé¹ê²{±µ¤f 115
5.5.2 ¨ç¼ÆÅé¹ê²{±µ¤f 116
5.5.3 HTTP¥]¤¤ªº¨Ò¤l 117
5.6 ³¬¥]¡]Closure¡^¡X¡X¤Þ¥Î¤F¥~³¡Åܶqªº°Î¦W¨ç¼Æ 118
5.6.1 ¦b³¬¥]¤º³¡­×§ï¤Þ¥ÎªºÅܶq 119
5.6.2 ¥Ü¨Ò¡G³¬¥]ªº°O¾Ð®ÄÀ³ 119
5.6.3 ¥Ü¨Ò¡G³¬¥]¹ê²{¥Í¦¨¾¹ 121
5.7 ¥iÅܰѼơX¡X°Ñ¼Æ¼Æ¶q¤£©T©wªº¨ç¼Æ§Î¦¡ 122
5.7.1 fmt¥]¤¤ªº¨Ò¤l 122
5.7.2 ¹M¾ú¥iÅܰѼƦCªí¡X¡XÀò¨ú¨C¤@­Ó°Ñ¼Æªº­È 123
5.7.3 Àò±o¥iÅܰѼÆÃþ«¬¡X¡XÀò±o¨C¤@­Ó°Ñ¼ÆªºÃþ«¬ 124
5.7.4 ¦b¦h­Ó¥iÅܰѼƨç¼Æ¤¤¶Ç»¼°Ñ¼Æ 125
5.8 ©µ¿ð°õ¦æ»y¥y¡]defer¡^ 127
5.8.1 ¦h­Ó©µ¿ð°õ¦æ»y¥yªº³B²z¶¶§Ç 127
5.8.2 ¨Ï¥Î©µ¿ð°õ¦æ»y¥y¦b¨ç¼Æ°h¥X®ÉÄÀ©ñ¸ê·½ 127
5.9 ³B²z¹B¦æ®Éµo¥Íªº¿ù»~ 131
5.9.1 net¥]¤¤ªº¨Ò¤l 131
5.9.2 ¿ù»~±µ¤fªº©w¸q®æ¦¡ 132
5.9.3 ¦Û©w¸q¤@­Ó¿ù»~ 132
5.9.4 ¥Ü¨Ò¡G¦b¸ÑªR¤¤¨Ï¥Î¦Û©w¸q¿ù»~ 133
5.10 ÌX¾÷¡]panic¡^¡X¡Xµ{§Ç²×¤î¹B¦æ 135
5.10.1 ¤â°ÊIJµoÌX¾÷ 135
5.10.2 ¦b¹B¦æ¨Ì¿àªº¥²³Æ¸ê·½¯Ê¥¢®É¥D°ÊIJµoÌX¾÷ 136
5.10.3 ¦bÌX¾÷®ÉIJµo©µ¿ð°õ¦æ»y¥y 136
5.11 ÌX¾÷«ì´_¡]recover¡^¡X¡X¨¾¤îµ{§Ç±Y¼ì 137
5.11.1 Åýµ{§Ç¦b±Y¼ì®ÉÄ~Äò°õ¦æ 137
5.11.2 panic©MrecoverªºÃö¨t 139
²Ä6³¹ µ²ºcÅé¡]struct¡^ 141
6.1 ©w¸qµ²ºcÅé 141
6.2 ¹ê¨Ò¤Æµ²ºcÅé¡X¡X¬°µ²ºcÅé¤À°t¤º¦s¦}ªì©l¤Æ 142
6.2.1 °ò¥»ªº¹ê¨Ò¤Æ§Î¦¡ 142
6.2.2 ³Ð«Ø«ü°wÃþ«¬ªºµ²ºcÅé 143
6.2.3 ¨úµ²ºcÅ骺¦a§}¹ê¨Ò¤Æ 143
6.3 ªì©l¤Æµ²ºcÅ骺¦¨­ûÅܶq 144
6.3.1 ¨Ï¥Î¡§Áä­È¹ï¡¨ªì©l¤Æµ²ºcÅé 145
6.3.2 ¨Ï¥Î¦h­Ó­Èªº¦Cªíªì©l¤Æµ²ºcÅé 146
6.3.3 ªì©l¤Æ°Î¦Wµ²ºcÅé 147
6.4 ºc³y¨ç¼Æ¡X¡Xµ²ºcÅé©MÃþ«¬ªº¤@¨t¦Cªì©l¤Æ¾Þ§@ªº¨ç¼Æ«Ê¸Ë 148
6.4.1 ¦hºØ¤è¦¡³Ð«Ø©Mªì©l¤Æµ²ºcÅé¡X¡X¼ÒÀÀºc³y¨ç¼Æ­«¸ü 149
6.4.2 ±a¦³¤÷¤lÃö¨tªºµ²ºcÅ骺ºc³y©Mªì©l¤Æ¡X¡X¼ÒÀÀ¤÷¯Åºc³y½Õ¥Î 149
6.5 ¤èªk 150
6.5.1 ¬°µ²ºcÅé²K¥[¤èªk 151
6.5.2 ±µ¦¬¾¹¡X¡X¤èªk§@¥Îªº¥Ø¼Ð 152
6.5.3 ¥Ü¨Ò¡G¤Gºû¥Ú¶q¼ÒÀÀª±®a²¾°Ê 155
6.5.4 ¬°Ãþ«¬²K¥[¤èªk 160
6.5.5 ¥Ü¨Ò¡G¨Ï¥Î¨Æ¥ó¨t²Î¹ê²{¨Æ¥óªºÅTÀ³©M³B²z 165
6.6 Ãþ«¬¤º´O©Mµ²ºcÅ餺´O 170
6.6.1 Án©úµ²ºcÅ餺´O 170
6.6.2 µ²ºc¤º´O¯S©Ê 172
6.6.3 ¨Ï¥Î²Õ¦X«ä·Q´y­z¹ï¶H¯S©Ê 173
6.6.4 ªì©l¤Æµ²ºcÅ餺´O 174
6.6.5 ªì©l¤Æ¤º´O°Î¦Wµ²ºcÅé 175
6.6.6 ¦¨­û¦W¦r¨R¬ð 177
6.7 ¥Ü¨Ò¡G¨Ï¥Î°Î¦Wµ²ºcÅé¤ÀÂ÷JSON¼Æ¾Ú 178
²Ä7³¹ ±µ¤f¡]interface¡^ 181
7.1 Án©ú±µ¤f 181
7.1.1 ±µ¤fÁn©úªº®æ¦¡ 181
7.1.2 ¶}µo¤¤±`¨£ªº±µ¤f¤Î¼gªk 182
7.2 ¹ê²{±µ¤fªº±ø¥ó 182
7.2.1 ±µ¤f³Q¹ê²{ªº±ø¥ó¤@¡G±µ¤fªº¤èªk»P¹ê²{±µ¤fªºÃþ«¬¤èªk®æ¦¡¤@­P 182
7.2.2 ±ø¥ó¤G¡G±µ¤f¤¤©Ò¦³¤èªk§¡³Q¹ê²{ 185
7.3 ²z¸ÑÃþ«¬»P±µ¤fªºÃö¨t 186
7.3.1 ¤@­ÓÃþ«¬¥i¥H¹ê²{¦h­Ó±µ¤f 186
7.3.2 ¦h­ÓÃþ«¬¥i¥H¹ê²{¬Û¦Pªº±µ¤f 187
7.4 ¥Ü¨Ò¡G«K¤_ÂX®i¿é¥X¤è¦¡ªº¤é§Ó¨t²Î 189
7.5 ¥Ü¨Ò¡G¨Ï¥Î±µ¤f¶i¦æ¼Æ¾Úªº±Æ§Ç 195
7.5.1 ¨Ï¥Îsort.Interface±µ¤f¶i¦æ±Æ§Ç 195
7.5.2 ±`¨£Ãþ«¬ªº«K±¶±Æ§Ç 197
7.5.3 ¹ïµ²ºcÅé¼Æ¾Ú¶i¦æ±Æ§Ç 199
7.6 ±µ¤fªº´O®M²Õ¦X¡X¡X±N¦h­Ó±µ¤f©ñ¦b¤@­Ó±µ¤f¤º 202
7.7 ¦b±µ¤f©MÃþ«¬¶¡Âà´« 205
7.7.1 Ãþ«¬Â_¨¥ªº®æ¦¡ 205
7.7.2 ±N±µ¤fÂà´«¬°¨ä¥L±µ¤f 205
7.7.3 ±N±µ¤fÂà´«¬°¨ä¥LÃþ«¬ 208
7.8 ªÅ±µ¤fÃþ«¬¡]interface{}¡^¡X¡X¯à«O¦s©Ò¦³­ÈªºÃþ«¬ 208
7.8.1 ±N­È«O¦s¨ìªÅ±µ¤f 209
7.8.2 ±qªÅ±µ¤fÀò¨ú­È 209
7.8.3 ªÅ±µ¤fªº­È¤ñ¸û 210
7.9 ¥Ü¨Ò¡G¨Ï¥ÎªÅ±µ¤f¹ê²{¥i¥H«O¦s¥ô·N­Èªº¦r¨å 211
7.10 Ãþ«¬¤À¤ä¡X¡X§å¶q§PÂ_ªÅ±µ¤f¤¤ÅܶqªºÃþ«¬ 214
7.10.1 Ãþ«¬Â_¨¥ªº®Ñ¼g®æ¦¡ 214
7.10.2 ¨Ï¥ÎÃþ«¬¤À¤ä§PÂ_°ò¥»Ãþ«¬ 215
7.10.3 ¨Ï¥ÎÃþ«¬¤À¤ä§PÂ_±µ¤fÃþ«¬ 215
7.11 ¥Ü¨Ò¡G¹ê²{¦³­­ª¬ºA¾÷¡]FSM¡^ 217
²Ä8³¹ ¥]¡]package¡^ 227
8.1 ¤u§@¥Ø¿ý¡]GOPATH¡^ 227
8.1.1 ¨Ï¥Î©R¥O¦æ¬d¬ÝGOPATH«H®§ 227
8.1.2 ¨Ï¥ÎGOPATHªº¤uµ{µ²ºc 228
8.1.3 ³]¸m©M¨Ï¥ÎGOPATH 229
8.1.4 ¦b¦h¶µ¥Ø¤uµ{¤¤¨Ï¥ÎGOPATH 230
8.2 ³Ð«Ø¥]package¡X¡X½s¼g¦Û¤vªº¥N½XÂX®i 231
8.3 ¾É¥X¼ÐÃѲšX¡XÅý¥~³¡³X°Ý¥]ªºÃþ«¬©M­È 231
8.3.1 ¾É¥X¥]¤º¼ÐÃѲŠ231
8.3.2 ¾É¥Xµ²ºcÅé¤Î±µ¤f¦¨­û 232
8.4 ¾É¤J¥]¡]import¡^¡X¡X¦b¥N½X¤¤¨Ï¥Î¨ä¥Lªº¥N½X 232
8.4.1 Àq»{¾É¤Jªº¼gªk 233
8.4.2 ¾É¤J¥]¦Z¦Û©w¸q¤Þ¥Îªº¥]¦W 234
8.4.3 °Î¦W¾É¤J¥]¡X¡X¥u¾É¤J¥]¦ý¤£¨Ï¥Î¥]¤ºÃþ«¬©M¼Æ­È 235
8.4.4 ¥]¦bµ{§Ç±Ò°Ê«eªºªì©l¤Æ¤J¤f¡Ginit 235
8.4.5 ²z¸Ñ¥]¾É¤J¦Zªºinit()¨ç¼Æªì©l¤Æ¶¶§Ç 235
8.5 ¥Ü¨Ò¡G¤u¼t¼Ò¦¡¦Û°Êª`¥U¡X¡XºÞ²z¦h­Ó¥]ªºµ²ºcÅé 237
²Ä9³¹ ¦}µo 241
9.1 »´¶q¯Å½uµ{¡]goroutine¡^¡X¡X®Ú¾Ú»Ý­nÀH®É³Ð«Øªº¡§½uµ{¡¨ 241
9.1.1 ¨Ï¥Î´¶³q¨ç¼Æ³Ð«Øgoroutine 241
9.1.2 ¨Ï¥Î°Î¦W¨ç¼Æ³Ð«Øgoroutine 244
9.1.3 ½Õ¾ã¦}µoªº¹B¦æ©Ê¯à¡]GOMAXPROCS¡^ 245
9.1.4 ²z¸Ñ¦}µo©M¦}¦æ 245
9.1.5 Go»y¨¥ªº¨ó§@µ{§Ç¡]goroutine¡^©M´¶³qªº¨ó§@µ{§Ç¡]coroutine¡^ 246
9.2 ³q¹D¡]channel¡^¡X¡X¦b¦h­Ógoroutine¶¡³q«HªººÞ¹D 246
9.2.1 ³q¹Dªº¯S©Ê 247
9.2.2 Án©ú³q¹DÃþ«¬ 247
9.2.3 ³Ð«Ø³q¹D 248
9.2.4 ¨Ï¥Î³q¹Dµo°e¼Æ¾Ú 248
9.2.5 ¨Ï¥Î³q¹D±µ¦¬¼Æ¾Ú 249
9.2.6 ¥Ü¨Ò¡G¦}µo¥´¦L 252
9.2.7 ³æ¦V³q¹D¡X¡X³q¹D¤¤ªº³æ¦æ¹D 254
9.2.8 ±a½w¨Rªº³q¹D 255
9.2.9 ³q¹Dªº¦h¸ô´_¥Î¡X¡X¦P®É³B²z±µ¦¬©Mµo°e¦h­Ó³q¹Dªº¼Æ¾Ú 257
9.2.10 ¥Ü¨Ò¡G¼ÒÀÀ»·µ{¹Lµ{½Õ¥Î¡]RPC¡^ 258
9.2.11 ¥Ü¨Ò¡G¨Ï¥Î³q¹DÅTÀ³­p®É¾¹ªº¨Æ¥ó 261
9.2.12 Ãö³¬³q¹D¦ZÄ~Äò¨Ï¥Î³q¹D 264
9.3 ¥Ü¨Ò¡GTelnet¦^­µªA°È¾¹¡X¡XTCPªA°È¾¹ªº°ò¥»µ²ºc 266
9.4 ¦P¨B¡X¡X«OÃÒ¦}µoÀô¹Ò¤U¼Æ¾Ú³X°Ýªº¥¿½T©Ê 273
9.4.1 ÄvºAÀË´ú¡X¡XÀË´ú¥N½X¦b¦}µoÀô¹Ò¤U¥i¯à¥X²{ªº°ÝÃD 273
9.4.2 ¤¬¥¸Âê¡]sync.Mutex¡^¡X¡X«OÃÒ¦P®É¥u¦³¤@­Ógoroutine¥i¥H³X°Ý¦@¨É¸ê·½ 275
9.4.3 Ū¼g¤¬¥¸Âê¡]sync.RWMutex¡^¡X¡X¦bŪ¤ñ¼g¦hªºÀô¹Ò¤U¤ñ¤¬¥¸Âê§ó°ª®Ä 277
9.4.4 µ¥«Ý²Õ¡]sync.WaitGroup¡^¡X¡X«OÃÒ¦b¦}µoÀô¹Ò¤¤§¹¦¨«ü©w¼Æ¶qªº¥ô°È 277
²Ä10³¹ ¤Ï®g 280
10.1 ¤Ï®gªºÃþ«¬¹ï¶H¡]reflect.Type¡^ 280
10.1.1 ²z¸Ñ¤Ï®gªºÃþ«¬¡]Type¡^»PºØÃþ¡]Kind¡^ 281
10.1.2 «ü°w»P«ü°w«ü¦Vªº¤¸¯À 283
10.1.3 ¨Ï¥Î¤Ï®gÀò¨úµ²ºcÅ骺¦¨­ûÃþ«¬ 284
10.1.4 µ²ºcÅé¼Ðñ¡]Struct Tag¡^¡X¡X¹ïµ²ºcÅé¦r¬qªºÃB¥~«H®§¼Ðñ 287
10.2 ¤Ï®gªº­È¹ï¶H¡]reflect.Value¡^ 288
10.2.1 ¨Ï¥Î¤Ï®g­È¹ï¶H¥]¸Ë¥ô·N­È 288
10.2.2 ±q¤Ï®g­È¹ï¶HÀò¨ú³Q¥]¸Ëªº­È 289
10.2.3 ¨Ï¥Î¤Ï®g³X°Ýµ²ºcÅ骺¦¨­û¦r¬qªº­È 290
10.2.4 ¤Ï®g¹ï¶HªºªÅ©M¦³®Ä©Ê§PÂ_ 292
10.2.5 ¨Ï¥Î¤Ï®g­È¹ï¶H­×§ïÅܶqªº­È 293
10.2.6 ³q¹LÃþ«¬³Ð«ØÃþ«¬ªº¹ê¨Ò 297
10.2.7 ¨Ï¥Î¤Ï®g½Õ¥Î¨ç¼Æ 298
10.3 ¥Ü¨Ò¡G±Nµ²ºcÅ骺¼Æ¾Ú«O¦s¬°JSON®æ¦¡ªº¤å¥»¼Æ¾Ú 299
²Ä11³¹ ½sĶ»P¤u¨ã 306
11.1 ½sĶ¡]go build¡^ 306
11.1.1 go build µL°Ñ¼Æ½sĶ 306
11.1.2 go build+¤å¥ó¦Cªí 307
11.1.3 go build +¥] 308
11.1. 4 go build½sĶ®Éªºªþ¥[°Ñ¼Æ 310
11.2 ½sĶ¦Z¹B¦æ¡]go run¡^ 310
11.3 ½sĶ¦}¦w¸Ë¡]go install¡^ 311
11.4 ¤@ÁäÀò¨ú¥N½X¡B½sĶ¦}¦w¸Ë¡]go get¡^ 312
11.4.1 »·µ{¥]ªº¸ô®|®æ¦¡ 312
11.4.2 go get + »·µ{¥] 312
11.4.3 go get¨Ï¥Î®Éªºªþ¥[°Ñ¼Æ 313
11.5 ´ú¸Õ¡]go test¡^ 313
11.5.1 ³æ¤¸´ú¸Õ¡X¡X´ú¸Õ©MÅçÃÒ¥N½Xªº®Ø¬[ 313
11.5.2 °ò·Ç´ú¸Õ¡X¡XÀò±o¥N½X¤º¦s¥e¥Î©M¹B¦æ®Ä²vªº©Ê¯à¼Æ¾Ú 316
11.6 ©Ê¯à¤ÀªR¡]go pprof¡^¡X¡Xµo²{¥N½X©Ê¯à°ÝÃDªº½Õ¥Î¦ì¸m 319
11.6.1 ¦w¸Ë²Ä¤T¤è¹Ï§Î¤ÆÅ㦡¤ÀªR¼Æ¾Ú¤u¨ã¡]Graphviz¡^ 319
11.6.2 ¦w¸Ë²Ä¤T¤è©Ê¯à¤ÀªR¨Ó¤ÀªR¥N½X¥] 319
11.6.3 ©Ê¯à¤ÀªR¥N½X 319
²Ä12³¹ ¡§Áק|¡¨»P§Þ¥© 323
12.1 ¦X²z¦a¨Ï¥Î¦}µo¯S©Ê 323
12.1.1 ¤F¸Ñgoroutineªº¥Í©R´Á®É¦A³Ð«Øgoroutine 323
12.1.2 ÁקK¦b¤£¥²­nªº¦a¤è¨Ï¥Î³q¹D 326
12.2 ¤Ï®g¡G©Ê¯à©MÆF¬¡©ÊªºÂù¤b¼C 330
12.3 ±µ¤fªºnil§PÂ_ 335
12.4 mapªº¦hÁä¯Á¤Þ¡X¡X¦h­Ó¼Æ­È±ø¥ó¥i¥H¦P®É¬d¸ß 336
12.4.1 °ò¤_«¢§Æ­Èªº¦hÁä¯Á¤Þ¤Î¬d¸ß 337
12.4.2 §Q¥Îmap¯S©Êªº¦hÁä¯Á¤Þ¤Î¬d¸ß 341
12.4.3 Á`µ² 342
12.5 Àu¶®¦a³B²zTCPÖߥ] 342
²Ä13³¹ ¹ê¾Ôºt½m¡X¡X­åªRcellnetºôµ¸®w³]­p¦}¹ê²{Socket²á¤Ñ¥\¯à 354
13.1 ¤F¸Ñcelletºôµ¸®w¯S©Ê¡B¬yµ{¤Î¬[ºc 354
13.1.1 cellnetºôµ¸®wªº¯S©Ê 354
13.1.2 cellnetºôµ¸®wªº¬yµ{¤Î¬[ºc 356
13.2 ºÞ²zTCP Socket³s±µ 356
13.2.1 ²z¸ÑSocketªº¨Æ¥óÃþ«¬ 357
13.2.2 ºÞ²z¨Æ¥ó¦^½Õ 359
13.2.3 ³s±µ¾¹¡]Connector¡^ 361
13.2.4 ·|¸ÜºÞ²z¡]SessionManager¡^ 363
13.2.5 ±µ¨ü¾¹¡]Acceptor¡^ 366
13.3 ²Õ´±µ¦¬©Mµo°e¼Æ¾Ú¬yµ{ªºSocket·|¸Ü¡]Session¡^ 367
13.3.1 ¦b·|¸Ü¶}©l®É±Ò°Êgoroutine©M¬£µo¨Æ¥ó 368
13.3.2 ·|¸Ü¤¤ªº±µ¦¬¼Æ¾Ú´`Àô 369
13.3.3 ·|¸Ü¤¤ªºµo°e¼Æ¾Ú´`Àô 370
13.4 ±Æ¶¤³B²z¨Æ¥óªº¨Æ¥ó¶¤¦C¡]EventQueue¡^ 372
13.4.1 ¹ê²{¨Æ¥ó¶¤¦C 372
13.4.2 ¨Ï¥Î¤£¦Pªº¨Æ¥ó¶¤¦C¼Ò¦¡³B²z¼Æ¾Ú 374
13.5 ®ø®§½s½X¡]codec¡^¡X¡XÅýcellnet¤ä«ù®ø®§ªº¦hºØ½s½X®æ¦¡ 377
13.6 ®ø®§¤¸«H®§¡]MessageMeta¡^¡X¡X®ø®§ID¡B®ø®§¦WºÙ©M®ø®§Ãþ«¬ªºÃöÁpÃö¨t 379
13.6.1 ²z¸Ñ®ø®§¤¸«H®§ 380
13.6.2 ª`¥U®ø®§¤¸«H®§ 380
13.6.3 ¥Ü¨Ò¡G¨Ï¥Î®ø®§¤¸«H®§ 381
13.6.4 ¹ê²{®ø®§ªº½s½X¡]EncodeMessage()¡^©M¸Ñ½X¡]DecodeMessage()¡^¨ç¼Æ 382
13.7 ±µ¦¬©Mµo°e«Ê¥]¡]packet¡^ 383
13.7.1 ±µ¦¬¥iÅܪø«×«Ê¥] 384
13.7.2 ¤F¸Ñ«Ê¥]¼Æ¾ÚŪ¨ú¾¹¡]PacketReader¡^ 385
13.7.3 ¤F¸Ñ«Ê¥]¼Æ¾Ú¼g¤J¾¹¡]PacketWriter¡^ 387
13.7.4 Ū¨ú¦Û©w¸q«Ê¥]¤Î¼Æ¾Ú 387
13.7.5 ¼g¤J¦Û©w¸q«Ê¥]¤Î¼Æ¾Ú 389
13.7.6 ÅTÀ³®ø®§³B²z¨Æ¥ó 390
13.8 ¨Ï¥Îcellnetºôµ¸®w¹ê²{²á¤Ñ¥\¯à 392
13.8.1 ©w¸q²á¤Ñ¨óij 393
13.8.2 ¹ê²{«È¤áºÝ¥\¯à 394
13.8.3 ¹ê²{ªA°È¾¹¥\¯à 396
13.8.4 ¹B¦æ²á¤ÑªA°È¾¹©M«È¤áºÝ 398
§Ç¡G