Goã®ãšã©ãŒåŠç
ããã°ã©ãã³ã°èšèªGoã®ãšã©ãŒåŠçã«æ·±ãå ¥ã蟌ã¿ãå ç¢ãªã¢ããªã±ãŒã·ã§ã³ã®ããã®ãã¯ããã¯ãšãã¹ããã©ã¯ãã£ã¹ãæ¢æ±ããŸãããšã©ãŒåŠçã®èœãšã穎ããAppMasterãçæããGolangã³ãŒãã§ã®ãšã©ãŒåŠçã«ã€ããŠè©³ãã説æããŸãã

ãšã©ãŒåŠçã®éèŠæ§ãçè§£ãã
ãšã©ãŒåŠçã¯ã ãœãããŠã§ã¢éçºã«ãã㊠éåžžã«éèŠãªèŠçŽ ã§ãããšã©ãŒåŠçã«ãã£ãŠãéçºè ã¯ããã°ã©ã ã®å®è¡äžã«çºçããå¯èœæ§ã®ãããšã©ãŒãäºæž¬ãã管çããããšãã§ããããã§ããé©åãªãšã©ãŒåŠçãè¡ãããšã§ãã¢ããªã±ãŒã·ã§ã³ãå®å®ãããŠãŒã¶ãŒãã¬ã³ããªãŒã§ããããšãä¿èšŒãããŸãã Go ããã°ã©ãã³ã°èšèªã§ã¯ããšã©ãŒåŠçã¯ã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠäžå¯æ¬ ãªèŠçŽ ã§ããGoã§ã¯ããããããããæå°éã®ãšã©ãŒåŠçã¢ãããŒããæ¡çšããŠãããããéçºè ã¯æç€ºçãã€çæ¯ã«ãšã©ãŒãåŠçããããã«ãªããã³ãŒãã®ä¿å®æ§ãé«ãŸããŸããGoã§ãšã©ãŒãã³ããªã³ã°ãéèŠã§ããçç±ã¯ããã€ããããŸãïŒ
- ã³ãŒãã®ä¿¡é Œæ§ãé«ããïŒ ãšã©ãŒãé©åã«åŠçããããšã§ãéçºè ã¯ããŸããŸãªé害ã¢ãŒããäºæž¬ããäºæãã¬ç¶æ³ã«çŽé¢ããŠãã¢ããªã±ãŒã·ã§ã³ãäºæž¬å¯èœãã€åªé ã«åäœããããã«ããããšãã§ããŸãã
- ã³ãŒãã®ä¿å®æ§ã®åäžïŒ ãšã©ãŒåŠçãæç€ºçã«è¡ãããšã§ãã³ãŒããèªã¿ããããçè§£ãããããä¿®æ£ããããããããšãã§ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒ é©åãªãšã©ãŒåŠçãšã¯ããŠãŒã¶ãŒã«åé¡ã次ã®ã¹ããããç¥ãããæçãªãšã©ãŒã¡ãã»ãŒãžãæäŸããããšã§ããããšã³ããŠãŒã¶ãŒã«ãšã£ãŠããè¯ãå šäœçãªäœéšã«ã€ãªããã
- äžæž¬ã®äºæ ãžã®åãïŒ äºæãã¬ãšã©ãŒã¯ãé©åã«åŠçãããªããšãé倧ãªã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ãã·ã¥ãäºæãã¬åäœã«ã€ãªããå¯èœæ§ããããŸãããšã©ãŒåŠçæè¡ã¯ããã®ãããªç¶æ³ãç¹å®ãã察åŠããã®ã«åœ¹ç«ã€ãããã¢ããªã±ãŒã·ã§ã³ã®èä¹ æ§ãé«ããããšãã§ããŸãã

Goã®åºæ¬çãªãšã©ãŒåŠç
Goã§ã¯ããšã©ãŒåŠç㯠ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã äžå¿ã«è¡ãããŸãããšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã¯æ¬¡ã®ããã«å®çŸ©ãããŠããŸãïŒ
type error interface { Error() string } ã§ãã
Error() ã¡ãœãããå®è£
ããåã¯ããã¹ãŠ ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã® å®è£
ãšèŠãªãããšãã§ããŸããGoã®åºæ¬çãªãšã©ãŒåŠçã«ã¯ãéåžžãæ¬¡ã®ãããªã¹ãããããããŸãïŒ
- 颿°ãããšã©ãŒãè¿ãïŒ Goã§ã¯ããšã©ãŒãçºçãããå¯èœæ§ã®ãã颿°ã¯ã2çªç®ã®æ»ãå€ãšããŠ
ãšã©ãŒãªããžã§ã¯ããè¿ãå¿ èŠããããŸãïŒæåã®å€ã¯ãéåžžãæåããæ»ãå€ã§ãïŒã - è¿ããããšã©ãŒããã§ãã¯ããïŒ ãšã©ãŒãè¿ãããšãã§ãã颿°ãåŒã³åºããããè¿ããããšã©ãŒã
nilãnon-nilããã§ãã¯ãããnilã§ãªãå€ã¯ããšã©ãŒãçºçããããšã瀺ããŸãã - ãšã©ãŒã®åŠç ãšã©ãŒãè¿ãããå Žåã¯ããã°ã«èšé²ããããåŒã³åºãå ã«è¿ãããããŠãŒã¶ãŒã«é¢é£ããã¡ãã»ãŒãžã衚瀺ãããªã©ããŠãé©åã«åŠçããã
以äžã¯ãGoã®åºæ¬çãªãšã©ãŒåŠçã瀺ãäŸã§ãïŒ
package main import ( "fmt" "strconv" ) func main() { numStr := "123" numInt, err := strconv.Atoi(numStr) if err != nil { fmt.Println("Error occurred:", err) return } fmt.Println("Converted number:", numInt) }
ãã®äŸã§ã¯ã strconv.Atoi() 颿°ã int å€ãš ãšã©ãŒãè¿ã㊠ããŸãããšã©ãŒã¯ã颿°ãåŒã°ããåŸã nil ã§ãªãå€ã§ãããã©ããããã§ãã¯ãããŸãããšã©ãŒãçºçããå Žåããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããã°ã©ã ãæ»ããŸãã
Goã®ãšã©ãŒã©ããã³ã°ææ³
ãšã©ãŒã©ããã³ã°ã¯ãå
ã®ãšã©ãŒã¡ãã»ãŒãžãä¿æãããŸãŸããšã©ãŒã«ã³ã³ããã¹ãã远å ããããšãã§ãããã¯ããã¯ã§ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«ééãããšã©ãŒã®çè§£ããããã°ã容æã«ãªããŸããGo 1.13 ã§ã¯ã fmt.Errorf() 颿°ã«æ°ããåè© %w ã远å ããããšã©ãŒã®æãè¿ããã§ããããã«ãªããŸããããšã©ãŒãã©ããããå Žåããšã©ãŒãçºçããã³ã³ããã¹ããçè§£ããã®ã«åœ¹ç«ã€èª¬æçãªã¡ãã»ãŒãžãæäŸããããšãéèŠã§ããã以äžã¯ãGoã«ããããšã©ãŒã®ã©ããã®äŸã§ãïŒ
package main import ( "errors" "fmt" "os" ) func main() { err := openFile("non_existent.txt") if err != nil { fmt.Println("Error occurred:", err) } } func openFile(filename string) error { _, err := os.Open(filename) if err != nil { return fmt.Errorf("failed to open file %s: %w", filename, err) } return nil } } } } func openFile(filename string) error := os.Open(filename) } } fmt.Errorf("failed to open file %s: %w", filename, err)
ãã®äŸã§ã¯ã os.Open() 颿°ã¯ããã¡ã€ã«ãååšããªãå Žåã¯ãšã©ãŒãè¿ããŸãããšã©ãŒãçŽæ¥è¿ã代ããã«ã fmt.Errorf() ã䜿ã£ãŠè¿œå ã®ã³ã³ããã¹ãã§ã©ããããŠããŸããã¢ããªã±ãŒã·ã§ã³ããããã°ããéããã®è¿œå ã³ã³ããã¹ãã¯ãéçºè
ãåé¡ã®æ ¹æ¬åå ãè¿
éã«ç¹å®ããã®ã«åœ¹ç«ã¡ãŸããäŸãã°ãäžèšã®ã³ãŒããå®è¡ããå Žåãåºåã«ã¯ãªãŒãã³ã«å€±æããç¹å®ã®ãã¡ã€ã«åãå«ãŸããŸãïŒ
Error occurred: failed to open file non_existent.txt: open non_existent.txt: no such file or directory.
Goã§ãããããšã©ãŒåŠçã®èœãšã穎
Goã§ãšã©ãŒåŠçãè¡ãå Žåãäžå®å®ãªã¢ããªã±ãŒã·ã§ã³ããããã°ã®å°é£ãã«ã€ãªããäžè¬çãªèœãšã穎ãåé¿ããããšãéèŠã§ãããããã®èœãšã穎ã«ã¯ã以äžã®ãããªãã®ããããŸãïŒ
- ãšã©ãŒãç¡èŠããïŒ ãšã©ãŒåŠçã«ãããæãäžè¬çã§é倧ãªééãã®1ã€ã¯ããšã©ãŒãå®å šã«ç¡èŠããããšã§ããGoã³ãŒãã®ãšã©ãŒããã§ãã¯ããé©åã«åŠçããªããšãäºæãã¬åäœãããŒã¿ã®ç Žæããããã¯ãã以äžã®äºæ ãåŒãèµ·ããå¯èœæ§ããããŸããåžžã«ãšã©ãŒããã§ãã¯ããé©åã«åŠçããããã«ããŸãããã
panic()ãšrecover()ãéå°ã«äœ¿çšããïŒ panic()ãšrecover()ã¯ç¹å®ã®ç¶æ³ã§æçšã§ãããéå°ãªäœ¿çšã¯ã³ãŒããèªã¿ã¥ããããä¿å®ãã¥ããããå¯èœæ§ããããŸãããããã®é¢æ°ã®äœ¿çšã¯ãããã°ã©ã ã«å¿ èŠãªåææ¡ä»¶ãæºããããªãå Žåãªã©ãæ¬åœã«äŸå€çãªç¶æ³ã«éå®ããŠãã ããã- äžå®å šãªãšã©ãŒãã§ãã¯ïŒ ç¹å®ã®ãšã©ãŒã¿ã€ãã ãããã§ãã¯ããä»ã®æœåšçãªãšã©ãŒã¯åŠçããªããŸãŸã«ããŠããããšããããŸãã颿°ãè¿ãå¯èœæ§ã®ãããšã©ãŒã¯ãæç€ºçã«åŠçãããããã£ãããªãŒã«æ¹åŒã§åŠçããããã«ããŸãããã
- æšæºçãª
ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«åŸããªãïŒ Goã«ã¯ããšã©ãŒã管çãè¿ãããã®çµã¿èŸŒã¿ã®ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ããããŸãããšã©ãŒãå€ãšããŠè¿ãããšã§ããã®ã€ã³ã¿ãŒãã§ã€ã¹ã«æºæ ããæ··ä¹±ããããã°ã®é£ããã«ã€ãªããå¯èœæ§ã®ããã«ã¹ã¿ã æ§é ã®äœ¿çšã¯é¿ããŸãããã - ãããã«ããããŸãã¯äžè¬çãªãšã©ãŒã¡ãã»ãŒãžãè¿ãïŒ æç¢ºã§èª¬æçãªãšã©ãŒã¡ãã»ãŒãžã¯ãã³ãŒãã®åé¡ãçè§£ããããã°ããããã«äžå¯æ¬ ã§ãããšã©ãŒã¡ãã»ãŒãžã«ã¯ããšã©ãŒã®æ ¹æ¬çãªåå ãç¹å®ããã®ã«åœ¹ç«ã€ãæå³ã®ããæ å ±ãåžžã«æäŸããŸãããã
AppMasterãçæããGolangã³ãŒãã§ã®ãšã©ãŒåŠç
AppMaster no-code ãã©ãããã©ãŒã ã¯ãçæãããGolangã³ãŒãã®ãšã©ãŒåŠçãçå£ã«èãããã¹ããã©ã¯ãã£ã¹ã«åŸããããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã®é©åãªãšã©ãŒç®¡çãä¿èšŒããŸããããã«ããã AppMaster ãã©ãããã©ãŒã ã䜿çšããŠäœæããã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšä¿¡é Œæ§ãé«ãŸããŸããAppMasterãçæããGolangã³ãŒãã«ããããšã©ãŒåŠçã®äž»ãªç¹åŸŽã¯ä»¥äžã®éãã§ãïŒ
æšæºçãªãšã©ãŒåŠçãã¿ãŒã³
AppMaster Goã®æšæºçãªãšã©ãŒåŠçãã¿ãŒã³ã«æºæ ããçµã¿èŸŒã¿ã® ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã 䜿çšããçæãããã³ãŒãå
šäœã§äžè²«ãããšã©ãŒãã§ãã¯ãè¡ããŸãã
ãšã©ãŒã®æãè¿ã
ã³ã³ããã¹ããä¿æãããããã°ã容æã«ãããããAppMasterãçæããã³ãŒãã§ã¯ãé©åãªå Žåã«ãšã©ãŒã©ããã³ã°ãæ¡çšããŠããŸãããã®ã¢ãããŒãã«ãããéçºè ã¯ãšã©ãŒã«è³ãäžé£ã®æµããããçè§£ãããããªããŸãã
æå³ã®ãããšã©ãŒã¡ãã»ãŒãž
çæãããã³ãŒãå šäœãéããŠãæç¢ºã§èª¬æçãªãšã©ãŒã¡ãã»ãŒãžã䜿çšãããŠãããããåé¡ã®ç¹å®ãšè§£æ±ºã容æã«ãªããŸãã
ãšã©ãŒåŠçã®ãã¹ããã©ã¯ãã£ã¹
AppMasterãçæããGolangã³ãŒãã¯ãé©åãªãšã©ãŒç®¡çã panic() ãš recover() ã®æå°éã®äœ¿çšãå
æ¬çãªãšã©ãŒãã§ãã¯ãªã©ããšã©ãŒåŠçã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠããŸãããããã®ååã«åŸãããšã§ãAppMaster ãçæãããGolangã³ãŒãã®ä¿¡é Œæ§ã確ä¿ãããã®çµæãããªãã®ããžãã¹ã«é«å質ãªã¢ããªã±ãŒã·ã§ã³ãæäŸããããšãã§ããŸãã

Go ã§ã®ãšã©ãŒåŠçã®ãã¹ããã©ã¯ãã£ã¹
Goã§å¹æçã«ãšã©ãŒãåŠçãã匷åãªã¢ããªã±ãŒã·ã§ã³ãäœæããããã«ã¯ã確ç«ããããã¹ããã©ã¯ãã£ã¹ã«åŸãããšãéèŠã§ããGoã®ãšã©ãŒåŠçã«é¢ããäž»ãªãã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
- åžžã«ãšã©ãŒããã§ãã¯ããïŒ ããã¯ãGoã®ãšã©ãŒåŠçã®åºæ¬ã§ããã³ãŒãã®ãã¹ãŠã®ã¹ãããã§ãšã©ãŒããã§ãã¯ããäºæãã¬åäœãåé¡ãåé¿ããããã«é©åã«åŠçããããã«ããŸãããã
- ãšã©ãŒã©ããã³ã°ã䜿çšããŠã³ã³ããã¹ããæäŸããïŒ Go 1.13ã§å°å ¥ããããããªãšã©ãŒã©ããã³ã°æè¡ã掻çšãããšããšã©ãŒãçºçãããšãã«ã³ã³ããã¹ããä¿æããããšãã§ããŸããããã«ãããã³ãŒãããŒã¹ã®åé¡ãçè§£ãããããã°ããããšã容æã«ãªããŸãã
- æšæºçãª
ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«åŸãïŒ Goã«ã¯ããšã©ãŒã管çããããã®ãã«ãã€ã³ã»ã€ã³ã¿ãŒãã§ã€ã¹ããããŸããç¬èªã®ãšã©ãŒã¿ã€ãããšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠããããšã確èªããã«ã¹ã¿ã æ§é äœã§ã¯ãªãããšã©ãŒãå€ãšããŠè¿ãããšã«ãã ãã£ãŠãã ããã - æå°é©ãã®ååã«åŸããŸãïŒ ãšã©ãŒåŠçæŠç¥ãèšèšãããšãã¯ãã§ããã ãäºæž¬å¯èœã§çŽæçãªãã®ã«ããããšãç®æããŸããããã«ã¯ãæç¢ºãªãšã©ãŒã¡ãã»ãŒãžã®äœ¿çšãäžè²«ããæ¹æ³ã§ãšã©ãŒãè¿ãããšãã¢ããªã±ãŒã·ã§ã³ã®é©åãªã¬ãã«ã§ãšã©ãŒãåŠçããããšãå«ãŸããŸãã
- é©åãªã¬ãã«ã§ãšã©ãŒãåŠçãã ãšã©ãŒã®èšé²ãæäœã®å詊è¡ããŠãŒã¶ãŒãžã®ãããªã³ã°ãªã©ãã¢ããªã±ãŒã·ã§ã³ã®é©åãªã¬ãã«ã§ãšã©ãŒãåŠçããããšãéèŠã§ãããšã©ãŒã®åŠçã«è²¬ä»»ãæã€ã¹ã人ç©ã決å®ããããã«åŸã£ãŠãšã©ãŒã管çããŸãã
Goã®ãšã©ãŒåŠçã«é¢ãããããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãäºæãã¬åé¡ã«èããåé¡ãçºçãããšãã«æå³ã®ãã ãã£ãŒãããã¯ã æäŸã§ãããããåŒŸåæ§ã®ããã¢ããªã±ãŒã·ã§ã³ãäœæããããšãã§ããŸãããããã®ãã¹ããã©ã¯ãã£ã¹ãšAppMaster ãã©ãããã©ãŒã ã®åŒ·åãªæ©èœãçµã¿åãããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšå šäœçãªå質ãããã«åäžããŸãã
ãããã質å
Goã«ããããšã©ãŒåŠçãšã¯ãGoããã°ã©ã ã«ããããšã©ãŒãç¹å®ãäºæž¬ã管çããããã»ã¹ã®ããšãæããŸããããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšå ç¢æ§ã確ä¿ããããã®å®è¡æãšã©ãŒã®æ€åºãããšã©ãŒã¡ãã»ãŒãžã®é©åãªç®¡çãªã©ãå«ãŸããŸãã
Goã§ã¯ããšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããæ°ããåãå®çŸ©ããããšã§ãã«ã¹ã¿ã ãšã©ãŒãäœæããããšãã§ããŸãããã®å Žåããšã©ãŒã説æããæååãè¿ãError()ã¡ãœãããå®è£ ããå¿ èŠããããŸãã
Goã®ãšã©ãŒã©ããã³ã°ã«ãããéçºè ã¯å ã®ãšã©ãŒã¡ãã»ãŒãžãä¿æãããŸãŸããšã©ãŒã«ã³ã³ããã¹ãã远å ããããšãã§ããŸããããã«ããããšã©ãŒã®çè§£ãšãããã°ã容æã«ãªããã¢ããªã±ãŒã·ã§ã³ã³ãŒãå ã®åé¡ã®æ ¹æ¬çãªåå ããã©ãããšãã§ããããã«ãªããŸãã
Goã§ãããããšã©ãŒåŠçã®èœãšã穎ãšããŠã¯ããšã©ãŒã®ç¡èŠãpanic()ãrecover()ã®å€çšããšã©ãŒãã§ãã¯ã®äžå®å šããæšæºãšã©ãŒã€ã³ã¿ãŒãã§ãŒã¹ã«åŸããªãããªã©ããããŸãã
AppMasterãçæããGolangã³ãŒãã¯ã匷åãªãšã©ãŒåŠçã®ååã念é ã«çœ®ããŠèšèšãããŠããŸããäŸãã°ãçæãããããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ã§é©åãªãšã©ãŒç®¡çãä¿èšŒããGoã®ãšã©ãŒåŠçã®ãã¹ããã©ã¯ãã£ã¹ã«æºæ ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšä¿¡é Œæ§ãé«ããŠããŸãã
Goã®ãšã©ãŒåŠçã®ãã¹ããã©ã¯ãã£ã¹ã«ã¯ãåžžã«ãšã©ãŒããã§ãã¯ããããšã©ãŒã©ããã䜿ã£ãŠã³ã³ããã¹ããæäŸãããæšæºã®ãšã©ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«åŸããæå°é©ãã®ååã«åŸããã¢ããªã±ãŒã·ã§ã³ã®é©åãªã¬ãã«ã§ãšã©ãŒãåŠçããããªã©ããããŸãã


