Go言語

プログラミング

Go言語は、Google が開発した静的型付けのコンパイル言語です。シンプルな構文とパフォーマンスの高さが特徴的で、並行処理 (Concurrency) をネイティブでサポートしています。以下は、Go 言語のマニュアルとなります。

基本構文

パッケージ (package)

Go では、コードはパッケージ単位で構成されます。

package main // パッケージ名

import "fmt" // 外部パッケージのインポート

func main() { // エントリーポイント
fmt.Println("Hello, World!")
}

変数 (variables)

Go では、変数の型は静的に定義する必要があります。

var x int = 10 // 型と初期値を指定
var y = 20 // 初期値から型推論
z := 30 // 短縮構文 (関数スコープ内のみ)

関数 (functions)

関数は func キーワードで定義します。

func add(x, y int) int { // 引数と戻り値の型を指定
return x + y
}

制御構文 (control flows)

ifforswitch などの制御構文は、他の C 系言語と似ています。

codeif x > 0 {
// ...
} else if x < 0 {
// ...
} else {
// ...
}

構造体と インターフェース (structs and interfaces)

Go には、クラスのようなオブジェクト指向の概念はありませんが、構造体とインターフェースがあります。

type Person struct { // 構造体の定義
Name string
Age int
}

func (p Person) greet() string { // レシーバー (メソッドのような機能)
return "Hello, I'm " + p.Name
}

type Greeter interface { // インターフェースの定義
greet() string
}

ゴルーチンと チャネル (goroutines and channels)

Go は、ゴルーチン (goroutine) とチャネル (channel) によって並行処理をサポートしています。

ch := make(chan int) // チャネルの作成

go func() { // ゴルーチンの開始
ch <- 42 // チャネルへの送信
}()

value := <-ch // チャネルからの受信

他の言語との比較

C/C++

  • C/C++ に似たシンタックスですが、ポインタの概念がありません。
  • 手動でメモリ管理をする必要がありません (ガベージコレクタあり)。
  • 構造体 (struct) はクラスに似ていますが、継承はサポートされていません。

Java

  • 構文は C 系の言語に近いです。
  • スタティックリンクによりバイナリファイルが小さく、起動も速くなります。
  • 並行処理がゴルーチンとチャネルによってネイティブサポートされています。

Python

  • 構文がシンプルで読みやすいです。
  • 型推論は限定的で、基本的に静的型付けです。
  • パフォーマンスは C/C++ に近いです。

JavaScript

  • 構文がシンプルで読みやすい点は似ています。
  • 静的型付けであり、型安全性が高いです。
  • 並行処理の扱いが異なります。

Go 言語は、シンプルな構文と高いパフォーマンス、並行処理のサポートなどの特徴を持っています。コンパイル型の静的型付け言語として、システムプログラミングやネットワークプログラミングなどの分野で使われています。

コメント

タイトルとURLをコピーしました