banner
Pi3

Pi3

记录学习、生活和成长
github
telegram
x
zhihu
email

Go言語入門1:Goの紹介

Go 言語入門基礎学習ノートの Go 言語紹介

紹介#

image.png

Go 言語、または Golang は、Google によって開発された静的強型、コンパイル型のオープンソースプログラミング言語です。2007 年に Robert Griesemer、Rob Pike、Ken Thompson によって設計され、2009 年に正式に公開されました。Go 言語の設計目標は、プログラミング効率を向上させ、マルチコアプロセッサの並行プログラミングの問題を解決し、コードの可読性と保守性を向上させることです。Go 言語はその高性能、高並行性、シンプルな構文により、現代のソフトウェア開発でますます人気を集めています。

利点#

  • 非常にシンプルなデプロイ方法
    • 直接機械語にコンパイル可能
    • 他のライブラリに依存しない(実行ファイルが大きく、必要なライブラリをすべて静的にコンパイル)
    • 直接実行するだけでデプロイ可能
  • 静的型言語
    • コンパイル時に隠れたほとんどの問題をチェック
  • 言語レベルの並行性
    • 生まれつき並行性をサポート
    • マルチコアを十分に活用
  • 強力な標準ライブラリ
    • runtime システムスケジューリングメカニズム
    • 効率的な GC ガベージコレクションメカニズム
    • 豊富な標準ライブラリ:ネットワーク通信、数学、ファイルシステム、データ構造、アプリケーション構築、暗号化・復号化、テスト、Email、入出力、圧縮、同期ロックメカニズム、プロセススレッドなど
  • 簡単に学べる
    • 25 のキーワード
    • C 言語のシンプルな遺伝子、C 構文のサポート
    • オブジェクト指向の特徴(継承、多態性、カプセル化)
    • クロスプラットフォーム
  • 「大企業」リーダー
    • Google、Facebook
    • テンセント、バイドゥ、京東
    • シャオミ、七牛、滴滴、アリババ、新浪、ビリビリ、字節

フィボナッチ数列アルゴリズムを使って Go の性能を簡単に見てみましょう:

  1. コンパイル性能:Go > C > Node.js > PHP > C++ > Java > Python 3
  2. 実行性能:C++ > C > Go > Java > Node.js > PHP > Python 3

強み#

  1. クラウドコンピューティングインフラ分野。代表プロジェクト:docker、kubernetes、etcd、consul、cloudflare CDN、七牛クラウドストレージなど。
  2. 基盤バックエンドソフトウェア。代表プロジェクト:tidb、influxdb、cockroachdb など。
  3. マイクロサービス。代表プロジェクト:go-kit、micro、monzo bank の typhon、bilibili など。
  4. インターネットインフラ。代表プロジェクト:イーサリアム、hyperledger など。

スター製品:Docker、Kubernetes

image.png

欠点#

  1. パッケージ管理、大部分のパッケージは GitHub にあります。
  2. すべての Exception は Error で処理されます(かなり議論の余地があり、Java とは完全に逆です)
  3. C のダウングレード処理はシームレスではなく、C から asm へのダウングレードほど完璧ではありません(シリアライズの問題、C に取って代わることはできません)

環境インストール#

All releases - The Go Programming Language

Windows ではgo1.23.2.windows-amd64.zipまたはgo1.23.2.windows-amd64.msiをダウンロードし、その中のbinフォルダを環境変数に追加します:

システム変数に新しい変数GOROOTを作成し、変数値を Go インストールディレクトリのパスに設定します。次に新しい変数GOPATHを作成し、変数値を Go のすべてのプロジェクトのルートディレクトリのパスに設定します。最後に、システム変数の path に%GOROOT\bin%を追加します。

image.png

Go プロジェクトディレクトリにbin pkg srcの 3 つのディレクトリを作成し、その中でsrcはプロジェクトのルートフォルダ、binpkgはそれぞれインストールしたサードパーティの依存関係とプラグインを格納します。

image.png

ターミナルでgo versionを入力し、バージョン番号go version go1.23.2 windows/amd64が返されれば、インストール成功です。

VsCode を開き、Go 言語公式プラグインをインストールし、ターミナルを開いて以下のコマンドを実行して Go 開発ツールキットをインストールします。

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

VsCode でコマンドパレットCtrl+Shift+pを開き、Go installと入力し、Install/Update Toolsを選択して、すべてのツールにチェックを入れてインストールします。ツールは上記で設定したGOPATH環境変数のbin pkgフォルダにインストールされます。

インストールが完了したら、新しいプロジェクトフォルダtestを作成し、main.goファイルを作成します。この時、必ずこのフォルダ内でgo mod init testを入力する必要があります。testプロジェクトフォルダの名前と同じでなければなりません。完了するとgo.modが生成され、コードを書くことができます。

以上のすべての操作を完了しても、vscode でコードを書くとエラーが出る場合は、VsCode で再度GOPATHGOROOTのパスを設定する必要があります。

image.png

言語構造#

Go 言語の基本構成は以下の部分から成ります:

  1. パッケージ宣言
  2. パッケージのインポート
  3. 関数
  4. 変数
  5. 文と式
  6. コメント
package main

import "fmt"

func main() {
   /* これは最初のGo言語プログラムです */
   fmt.Println("Hello, World!")
}

package mainはパッケージ名を定義します。ソースファイルの非コメントの最初の行で、このファイルがどのパッケージに属するかを示す必要があります。例えば:package main。package main は独立して実行可能なプログラムを示し、すべての Go アプリケーションは main という名前のパッケージを含みます。現在のプログラムには main 関数があり、これは main パッケージです。 これは現在のプログラムファイル名とは関係ありません。

import "fmt"は Go コンパイラにこのプログラムが fmt パッケージを使用する必要があることを伝えます。fmt パッケージはフォーマットされた IO(入力 / 出力)の関数を実装しています。複数のパッケージをインポートする場合、以下の 2 つの方法を使用できますが、2 番目の方法が推奨されます。

import "fmt"
import "time"

import (
    "fmt"
    "time"	
)

///* */はそれぞれ単一行コメントと複数行コメントで、C 言語と一致します。

func main()はプログラムの実行が始まる関数です。main 関数はすべての実行可能プログラムに必ず含まれ、一般的には起動後に最初に実行される関数です(init()関数がある場合は、その関数が最初に実行されます)。各パッケージには 1 つの main 関数しか存在できず、複数の main 関数の宣言はできません。

注意が必要なのは、Go 言語では関数の後の{は関数名と同じ行に置かなければならず、そうでないとエラーになります。また、文の末尾の;は付けても付けなくてもよく、付けないことが推奨されます。

func main(){
    fmt.Println("hello Go!")
    fmt.Println("hello Go!");
}

fmt.Println(...)は文字列をコンソールに出力し、最後に自動的に改行\nを追加します。fmt.Print(...)も同様の効果があります。PrintPrintlnの 2 つの関数は変数を使用することもサポートしており、例えばfmt.Println(arr)のように、特に指定がなければ、デフォルトの印刷形式で変数 arr をコンソールに出力します。

識別子(定数、変数、型、関数名、構造体フィールドなど)が大文字で始まる場合、例えばGroup1のように、その形式の識別子を使用するオブジェクトは外部パッケージのコードから使用可能です(クライアントプログラムはこのパッケージを先にインポートする必要があります)。これをエクスポートと呼びます(オブジェクト指向言語のpublicに似ています);

識別子小文字で始まる場合、パッケージ外からは見えませんが、パッケージ内では可視であり使用可能です(オブジェクト指向言語のprotectedに似ています)。

Go 言語の実行には 2 つの方法があります:

  1. go run hello.go プログラムを直接コンパイルして実行
  2. go build hello.go バイナリファイルにコンパイルした後、./hello.goでバイナリファイルを実行

参考コース:8 時間で Golang エンジニアに転職

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。