これがゴーンを学ぶ理由です




導入
Golang 最年少のプログラミング言語の一つです.このポストが発行されるまで、現在の安定したGolangバージョンは1.17.2です.それに加えて、開発者の間で人気のあるプログラミング言語と見なされます.これは、ビルドすることができますし、多くのプラットフォームと環境(残念ながら、Java)で、固体と支持の組み込みパッケージ、および多くのバンドルを実行します.
私はゴランを使用して言語の魔法の欠如のために、冗長な、構造化し、クリーン.この記事の中で、あなたはゴングの学習を検討する理由を発見するつもりです.私は、それが煙で終わると思うので、私は他のプログラミング言語とゴランを比較するつもりはありません.では、言語構造そのものから始めましょう.

言語構造
package main

import (
  "errors"
  "fmt"
)

type Numbers []int

func (n Numbers) Repeat() error {
  if n == nil {
    return errors.New("Numbers is nil")
  }

  for i, e := range n {
    fmt.Printf("%02d => %3d\n", i+1, e)
  }

  return nil
}

func main() {
  if err := Numbers(nil).Repeat(); err != nil {
    fmt.Println(err)
  }

  _ = Numbers([]int{1, 99, 100}).Repeat()
}
私はすべての言語構文をカバーしませんが、上記のコードはゴランのコードの例です.あなたは今それを理解する必要はありませんが、コードの構造を学ぶことができますpackage and import コードスコープとしてfunc main エントリポイントとして、if-else and for loop 制御構造の一つとしてtypes , nil , errors , など
それはstrictly typed , 使用curly braces スコープとして、単一のコントロール構造を書くだけでnil の代わりにnull (ここでは1文字を保存し、セミコロンを使用して区切りを行います.そのすべてが言った、ゴランの構文は初心者フレンドリーです、少なくとも、それは私が考えたものです.
ゴランだけがそうでないので、あなたは汚いコード構文を書くのを恐れませんguide それをよりよく書くために、それはそれ自身も持っていますlinter and formatter これは、変数が組み込まれていないものを示します.そして、それはあなたが知っているつもりです.

組み込みサポート
Golangは偉大なアプリケーションを構築する独自のツールをもたらします.リンター?フォーマッタ?テスター?あなたnamed それ.また、garbage collector , ネイティブサポートconcurrency , とplayground . それ以外にも、Golangは支えられたビルトインパッケージも持っています.あなたは書くことができますweb application , command-line interface application , そして、aWeb Assembly application サードパーティ製のモジュールなしで.しかし、Golangモジュールを作成する場合はどうですか?それについて話しましょう.

モジュール
あなたは簡単に両方のローカルおよびリモートGolangモジュールを作成することができます.ジャスト実行go mod init <module-name> そして、ちょうど通常のようにコード.Golangモジュールのサポートgitをボックスから、単にGitリポジトリにゴーンモジュールをプッシュすることができますし、コードにインポートします.たとえば、Postgresプラグインやデータベースの資格情報のローテーションモジュールをインポートする場合は、git - repoの名前を入力するだけでインポートできます.
import (
  "context"
  "database/sql"
  "log"
  "time"

  "github.com/ClavinJune/rotator"
  "github.com/lib/pq"
)

ビルド結果
バイナリ!Golangはコードをバイナリにビルドします.Windowsでは、実行可能ファイルにコードをビルドします.LinuxではELFファイルをビルドします.また、環境変数を使用するだけでビルドを制御できます.Linuxマシン上にあるとしましょうが、Windows用の実行可能ファイルを作成したいだけです.
$ ls
main.go
$ GOOS=windows GOARCH=amd64 go build main.go 
$ file main.exe 
main.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
$ GOOS=darwin GOARCH=amd64 go build main.go 
$ file main
main: Mach-O 64-bit x86_64 executable
Webアセンブリモジュールを作成するには、次の手順に従います.
$ GOOS=js GOARCH=wasm go build -o main.wasm main.go
$ file main.wasm
main.wasm: WebAssembly (wasm) binary module version 0x1 (MVP)

結論
私は、私がすべての言語仕様をカバーしていないということを知っています.上記のすべての理由は、開発者として私にとって全く主観的です、あなたはFAQ page またはspecification page . また、ゴランは2nd version 一般的なエラー処理をサポートします.
読んでくれてありがとう!