golang

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
golang [2019/09/17 12:17] – 作成 ともやんgolang [2021/03/27 15:13] – [参考文献] ともやん
行 13: 行 13:
       min-width: 200px;       min-width: 200px;
       overflow:hidden;       overflow:hidden;
 +    }
 +    #clearfix:after {
 +      content: "";
 +      display: block;
 +      height: 0;
 +      visibility: hidden;
 +      clear: both;
 +    }
 +    #clearfix {
 +      display: inline-table;
 +    }
 +    /* Hides from IE-mac \*/
 +    * html #clearfix {
 +      height: 1%;
 +    }
 +    #clearfix {
 +      display: block;
     }     }
   </style>   </style>
 </html> </html>
 ====== Go 関連 ====== ====== Go 関連 ======
-<WRAP multi-columns> +本家: [[https://golang.org/|The Go Programming Language]]\\ 
-<WRAP left #go-logo>+ソースコード: [[https://github.com/golang/go|golang/go: The Go programming language]]\\ 
 +<WRAP multi-columns #clearfix
 +<WRAP left column #go-logo>
 {{:golang:golang_logo.png|Go Logo}}\\ {{:golang:golang_logo.png|Go Logo}}\\
 </WRAP> </WRAP>
-<WRAP #desc> 
 Go はプログラミング言語の 1 つである。(コンパイラー言語) 2009 年、Google で Robert Griesemer、ロブ・パイク、ケン・トンプソンによって設計された。Go は、静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、構造的型付け、CSP スタイルの並行性などの特徴を持つ。Go のコンパイラ、ツール、およびソースコードは、すべてフリーかつオープンソースである。\\ Go はプログラミング言語の 1 つである。(コンパイラー言語) 2009 年、Google で Robert Griesemer、ロブ・パイク、ケン・トンプソンによって設計された。Go は、静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、構造的型付け、CSP スタイルの並行性などの特徴を持つ。Go のコンパイラ、ツール、およびソースコードは、すべてフリーかつオープンソースである。\\
 \\ \\
 また、軽量スレッディングのための機能、Python のような動的型付け言語のようなプログラミングの容易性、などの特徴もある。Go 処理系としてはコンパイラのみが開発されている。マスコット・キャラクターは Gopher (ホリネズミ)。\\ また、軽量スレッディングのための機能、Python のような動的型付け言語のようなプログラミングの容易性、などの特徴もある。Go 処理系としてはコンパイラのみが開発されている。マスコット・キャラクターは Gopher (ホリネズミ)。\\
 +[[https://ja.wikipedia.org/wiki/Go_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)|Go (プログラミング言語) - Wikipedia]] より\\
 </WRAP> </WRAP>
-</WRAP>+ 
 +===== インストール ===== 
 +Fedora では最新版の Go がインストールされる。\\ 
 +2019/09/17 現在の Go の最新バージョンは v1.12.9 である。\\ 
 +Fedora Linux on WSL 2\\ 
 +<code> 
 +$ sudo dnf install golang 
 +$ go version 
 +go version go1.12.9 linux/amd64 
 +</code> 
 + 
 +GOPATH 環境変数を設定する。\\ 
 +<code> 
 +$ mkdir -p ~/go 
 +$ echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc 
 +$ source ~/.bashrc 
 +$ go env GOPATH 
 +/home/tomoyan/go 
 +</code> 
 + 
 +===== プログラムの作成 ===== 
 +Go でプログラムを作成するには、$GOPATH/src サブディレクトリに .go 拡張子を持つファイルを作成する。\\ 
 +<code> 
 +$ mkdir -p $GOPATH/src/hello && cd $GOPATH/src/hello 
 +$ vi hello.go 
 +</code> 
 +<code go hello.go> 
 +package main 
 + 
 +import "fmt" 
 + 
 +func main() { 
 +    fmt.Println("Hello, World!"
 +
 +</code> 
 + 
 +変更を保存し、同じディレクトリで hello.go を実行する。\\ 
 +<code> 
 +$ go run hello.go 
 +Hello, World! 
 +</code> 
 + 
 +hello.go をビルドするは簡単である。\\ 
 +<code> 
 +$ go build 
 +$ ls 
 +hello  hello.go 
 +$ ./hello 
 +Hello, World! 
 +</code> 
 + 
 +さらに **go install** で **$GOPATH/bin** にインストールされる。 \\ 
 +<code> 
 +$ go install 
 +$ ls $GOPATH/bin 
 +hello 
 +</code> 
 +また、**$GOPATH/pkg** のすべての依存関係を構築およびキャッシュする。\\ 
 + 
 +プログラムは **$GOPATH/bin** にインストールされるため、一般的には PATH 環境変数に追加して、フルパスを指定せずに Go プログラムを実行できるようにする。\\ 
 +<code> 
 +$ echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc 
 +$ source ~/.bashrc 
 +$ hello 
 +Hello, World! 
 +</code> 
 + 
 +===== Go パッケージのインストール ===== 
 + 
 +==== アップストリームの Go パッケージ ==== 
 +アップストリームプロジェクトは **go get** コマンドでインストールできる。\\ 
 +<code> 
 +$ go get github.com/gorilla/context 
 +</code> 
 +ゴ、ゴリラ? (gorilla)...\\ 
 + 
 + 
 + 
 +===== 参考文献 ===== 
 +[[https://developer.fedoraproject.org/tech/languages/go/go-installation.html|Go — Fedora Developer Portal]]\\ 
 +[[https://developer.fedoraproject.org/tech/languages/go/go-programs.html|Writing Go programs — Fedora Developer Portal]]\\ 
 + 
 +[[https://www.paloaltonetworks.jp/company/in-the-news/2019/the-gopher-in-the-room-analysis-of-golang-malware-in-the-wild|Gopher の人気度は: インターネット上の GoLang マルウェア分析 - Palo Alto Networks]]\\ 
 +**Grumpy**\\ 
 +[[https://opensource.googleblog.com/2017/01/grumpy-go-running-python.html|Grumpy: Go running Python! | Google Open Source Blog]]\\ 
 +[[https://qiita.com/e-a-st/items/998250b3d430d82594c2|Grumpy(Go running Python)を試してみた。 - Qiita]]\\ 
 +[[https://japan.zdnet.com/article/35094636/|グーグル、Pythonコードを「Go」言語に変換する「Grumpy」を公開 - ZDNet Japan]]\\ 
 + 
 +==== 付録 ==== 
 +[[tw>tomoyan596/status/1375684357428404228|「git の shallow clone で高速に clone しつつ、バックグランドで unshallow してくれる go で書かれたツールが存在しますねぇ🤔なるほど...」 / Twitter]]\\