Go

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動
メインページ > 工学 > 情報技術 > プログラミング > Go

Goは、Googleの開発したプログラミング言語のひとつです。

Goは、システムプログラミングを念頭に置いて設計された汎用言語です[1]。 強く型付け・ガベージコレクション・・コンカレントプログラミングをサポートしています。 プログラムはパッケージから構築され、その特性により依存関係を効率的に管理することができます。 文法はコンパクトで解析が簡単なため、統合開発環境などの自動ツールで簡単に解析することができます。

尚、公式サイトのドメイン名 golang.org から golang と表記される場合もありますが、このプログラミング言語の正式名称は Go です。

目次[編集]

チュートリアル篇
環境構築
実行の方法  — Hello, World
文法の概要
変数と型変換
算術演算と数学関数
条件分岐と繰り返し  — if, switch, select, for, break, continue, return
関数
メソッドとインターフェース
再帰的関数呼出し
メソッドチェイン
defer,panicとrecover
並行処理
配列型とスライス型
マップ型
構造体型と構造体スライス
Goのプログラムがどんなアセンブリにコンパイルされるか?  — go tool objdump
クロスコンパイル  — GOOS, GOARCH
cgoでGoのコードからCの関数を利用する  — cgo
Goのコードでgoのバージョンを調べる方法
HTTP
ファイル入出力
リファレンス篇
ソースコードの表現方法
キーワードと宣言済み識別子  — キーワード宣言済み識別子組込み型組込み関数
字句的要素
定数と変数  — 定数iota)・変数
型と値の特性
ブロック・宣言とスコープ  — ブロック宣言とスコープ
 — 演算子
パッケージ
プログラムの初期化と実行
エラー
EBNF
標準ライブラリー篇

Go 1.18 での変更[編集]

2022年3月にリリースされた Go 1.18 はジェネリックスに代表される新機能が追加されたバージョンです[2]。 ここでは、言語に関する変更を中心に変更点を解説します。

Go 1.18 には、型パラメータプロポーザル[3]で説明されたジェネリック機能の実装が含まれています。

以下は、最も目に付く変更点のリストです。

  • 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ /関数#ジェネリック関数
  • パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
  • 新しいトークン ~ が演算子および区切子(punctuation)に追加されました。⇒ /字句的要素#演算子と区切子
  • インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ /型#インターフェース型
  • 新しい事前宣言された識別子anyは空のインターフェースの別名です。これは interface{} の代わりに使用することができます。
  • 新しい宣言済み識別子 comparable==!= を使って比較できる全ての型の集合を表すインターフェースです.

ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。

golang.org/x/exp/constraints
constraints.Orderedのようなジェネリックコードに便利な制約です。
golang.org/x/exp/slices
任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
golang.org/x/exp/maps
任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。


脚註[編集]

  1. ^ “Introduction¶”. The Go Programming Language Specification. The Go website. (Jul 26, 2021). https://golang.org/ref/spec#Introduction. 
  2. ^ Go 1.18 Release Notes - The Go Programming Language. (2022/03/10). https://go.dev/doc/go1.18. 
  3. ^ Type Parameters Proposal. https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md 2021年9月30日閲覧。. 

参考文献[編集]

外部リンク[編集]

Wikipedia
ウィキペディアGoの記事があります。
ウィキバーシティ
ウィキバーシティGoの学習教材があります。