1. はじめに
1. ソフトウェア開発における新たな課題
- マルチコアハードウェアアーキテクチャ
- 超大規模分散コンピューティングクラスター
- Web開発におけるかつてない開発規模と更新スピード。
BAT や Didi などの企業がこれを使用しており、Zhihu は Python を放棄して Go に切り替えました。クラウド開発言語としても知られる Docker や K8s も使用されます。もう一つのブロックチェーン開発言語。
2. 開発者が好む機能
- シンプル、25のキーワード
- 組み込みの同時実行サポート、ガベージ コレクション
- 効率的でコンパイルされた静的言語
- 生産性、依存関係管理の明確な紹介、独自のインターフェイス タイプの設計、プログラミングの制約。たくさん切り落とすにはiOSの操作を参照してください。大通りからシンプルへ。
3. 誤解
共有メモリの同時実行制御。Go 言語自体の CSP 同時実行メカニズムを無視します。さらに、Java の優雅さのなさによって引き起こされた落とし穴。
4. Google のインストールと公式ドキュメント
2. 最初の Go プログラムを作成する
1. 開発環境の構築
ゴパス:
- この環境変数はバージョン 1.8 より前に設定する必要があります
- バージョン 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. 応募エントリー
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
main
メソッドである必要があります:func main()
- ファイル名は次である必要はありません
main.go
5. 終了戻り値
他の主要なプログラミング言語との違い:
- Go の関数は
main
戻り値をサポートしていません 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. コマンドラインパラメータを取得する
他の主要なプログラミング言語との違い
main
この関数はパラメータの受け渡しをサポートしていません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