Go 言語の概要と最初の Go プログラムの作成

1. はじめに

1. ソフトウェア開発における新たな課題

  1. マルチコアハードウェアアーキテクチャ
  2. 超大規模分散コンピューティングクラスター
  3. Web開発におけるかつてない開発規模と更新スピード。

BAT や Didi などの企業がこれを使用しており、Zhihu は Python を放棄して Go に切り替えました。クラウド開発言語としても知られる Docker や K8s も使用されます。もう一つのブロックチェーン開発言語。

2. 開発者が好む機能

  1. シンプル、25のキーワード
  2. 組み込みの同時実行サポート、ガベージ コレクション
  3. 効率的でコンパイルされた静的言語
  4. 生産性、依存関係管理の明確な紹介、独自のインターフェイス タイプの設計、プログラミングの制約。たくさん切り落とすにはiOSの操作を参照してください。大通りからシンプルへ。

3. 誤解

共有メモリの同時実行制御。Go 言語自体の CSP 同時実行メカニズムを無視します。さらに、Java の優雅さのなさによって引き起こされた落とし穴。

4. Google のインストールと公式ドキュメント

2. 最初の Go プログラムを作成する

1. 開発環境の構築

ゴパス:

  1. この環境変数はバージョン 1.8 より前に設定する必要があります
  2. バージョン 1.8 以降 (1.8 を含む) が設定されていない場合は、デフォルト値が使用されます。
  • デフォルトは Unix では 0 $HOME/go、Windows では 0 ~ 0 です%USERPROFILE%/go
  • Mac では、~/.bash_profileを変更することで GOPATH を設定できます。

2. Go プログラムを書く

// 查看 Go 版本
go version

// 创建 Go 学习的总目录 d:\Gocode
// src 是源码路径,在下面建立 ch1/main/hello_world.go,记得 helloworld 文件拓展名记得要写 go
package main
import "fmt"

func  main() {
 fmt.Println("Hello World") 
}



//在 cmd 里面:

>d:
>cd d:\Gocode\src\ch1\main
// 运行代码
go run hello_world.go
// 编译代码,会生成一个 hello_world 的二进制文件,执行这个二进制文件也会直接回显出来 Hello World
go build hello_world.go

// Go 在默认情况下都会使用静态连接,编译完的 Go 程序是一个独立的二进制文件,有很好的便携性。可以拷贝到不同的机器上运行

3. 基本的なプログラム構造

package main // 包,表明代码所在的模块(包)
import "fmt" // 引入的代码依赖

// 功能实现
func main() {
 fmt.Println("Hello World") 

4. 応募エントリー

  1. mainパッケージである必要があります: package main(パッケージの宣言は main である必要がありますが、ディレクトリ名は main である必要はありません)
// 新建一个目录`\Gocode\src\ch1\hello`,把前面的`hello_world.go`文件复制过去,依然执行正常
> go run hello_world.go  
Hello World

//但如果把`hello_world.go`里面的`package main`改成`package main1`再`go run`运行就会报错

> go run hello_world.go
package command-line-arguments is not a main package
  1. mainメソッドである必要があります:func main()
  2. ファイル名は次である必要はありませんmain.go

5. 終了戻り値

他の主要なプログラミング言語との違い:

  1. Go の関数はmain戻り値をサポートしていません
  2. os.Exitステータスを返す方法

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println("Hello World")
    os.Exit(-1)
}

出力結果:

> go run hello_world.go  
Hello World
exit status 255

6. コマンドラインパラメータを取得する

他の主要なプログラミング言語との違い

  1. mainこの関数はパラメータの受け渡しをサポートしていません
  2. os.Argsコマンドラインパラメータをプログラム内で直接取得します。
package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(os.Args)
    fmt.Println("Hello, world!")
    os.Exit(-1)
}

ファイルを実行し、バイナリ コマンドとコマンド ライン パラメータを出力するためのパラメータを追加します。

>go run hello_world.go ddao
[C:\Users\xxxxxxxx\xxx\xxxxxxxxxx\go-build2455331386\b001\exe\hello_world.exe ddao]
Hello, world!
exit status 255
package main

import (
    "fmt"
    "os"
)

func main() {
    if len(os.Args) > 1 {
        fmt.Println("Hello, world!", os.Args[1])
    }
}
>go run hello_world.go ddao
Hello, world! ddao

おすすめ

転載: blog.csdn.net/weixin_62173811/article/details/129909300