6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【🔰初心者向け】改めてGolangを理解する① ~ Hello Worldしてみよう ~

Last updated at Posted at 2025-01-20

はじめに

こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。今回の記事はGo言語の環境構築についてです。Go言語は最近かなり人気な言語ですよね。

今回の記事はMacユーザー向けになります。

ce5a8970-fed6-4ad8-ab2e-80b732026d54_720.png

Go言語ってどう生まれたの?は対して知らなくていいです

初心者向けの記事を書くとき毎回こう言いますが、どういった経緯で出来たかなんて知らなくて大丈夫です。バックエンド領域の1つの言語です。で十分です。

ただ特徴だけは少し押さえておきましょう。

  • 静的言語、コンパイラ型
  • 速い。動的言語(PythonとかRubyとか)よりも確実に
  • Cとかより習得が簡単め
  • シンプルで読みやすい(書く人にもよるけど)

静的型付けと動的型付けの違い

プログラミングには主にこの二つの違いがあります。
大前提として、コンピュータが扱うデータには様々な型があります。この型をしっかりコードの中に書いてあげないといけないのが静的、逆に型を書かなくても言語が推測して型はこれだろうと決めてくれるのが動的です。くらいの理解で最初は大丈夫です。

今回のGo言語などは静的ですが、型を書く必要がなかったりします。
【本来正しい説明】
型をコンパイル時に決めてコード内で明示する(または型推論で確定させる)のが静的型付けで、型を実行時に決めてプログラマが型を意識せずに書けるのが動的型付けです。

まあコンパイラ、インタプリタどうのこうのは、最初は気にしなくて大丈夫。

例(変数定義の違い)

Pythonの場合(動的)
name = "Qiita"
Javaの場合(静的)
String name = "Qiita";

では早速環境構築をしていこう

brewでインストール
brew install go

インストールが完了したら、バージョンを確認してみよう。

バージョン確認
go version

# 出力結果
go version go1.23.5 darwin/arm64

Goはどこにインストールされているんでしょうか?

Goのインストール先を確認
which go 

# 出力結果
/opt/homebrew/bin/go

M1以降だと、この場所に保存されるようです。intelでは違う場所に行くようですが、検証はできないので適宜which goで場所を確認してください。

では恒例のHello Worldを!

適当にディレクトリを作って、その中でGoプログラムを書いていきましょう。

ディレクトリとファイルを作成
mkdir Golang && cd Golang && touch main.go

では適当なエディタを開いてもらって、中身を書いていきましょう。

プログラムを記述
package main

import "fmt"

func main() {
    fmt.Println("Hello Go!")
}

この中身を詳しく書いても、初学者にとっては難しいと思います。
主要なところだけ説明すると、

  • fmt.Printlnが画面出力を担当してます
  • PrintlnはPrint Lineの略です。使う度に改行されます
  • fmtというライブラリをインポートしている(Goの開発者が準備してくれている便利ツールの一つ)
  • fmtの中にPrintlnがある。それを使っている

ではターミナルで以下のコマンドを叩いてみましょう。

実行結果
go run main.go

# 実行結果
Hello Go!

変数も使ってみます

変数を定義して使ってみよう
package main

import "fmt"

func main() {
	name := "Qiita!!"
	fmt.Println("Hello", name)
}
実行結果
go run main.go

# 実行結果
Hello Qiita!!

変数定義について

変数は値を入れておくための箱です。ものすごく簡単に言ってしまうと、この箱の中に様々なデータを入れて、こねくり回すのがプログラミングです。

Goでは変数定義は従来の静的型付けのような形と、型推論という動的型付けのような形の2パターンあります。

変数定義について
// 一般的な型を指定した変数定義
var x int = 10
var name string = "Qiita"

// 型推論を使った変数定義
x := 10        // 型は int と推論
name := "Qiita"  // 型は string と推論

複数変数定義の場合

複数変数定義
// 一般的な型を指定した変数定義
var (
    a int = 1
    b string = "hello"
    c bool // デフォルト値 false
)

// 型推論を使った変数定義
x, y, z := 1, "world", true

定数について

定数は一度値を入れたら中身を変更できない箱です。定義時にはvarではなくconstを使います。

書き方
const Greeting = "Hello"

Goの定数は型を指定することもできますが、しなくてもよくなっています。値が箱に代入される際、型が決まるようにもなるからです。柔軟性がありますね。

書き方
const X = 42 // 型を指定しない(untyped)

var a int = X          // Xはintに変換
var b float64 = X      // Xはfloat64に変換

fmt.Println(a, b)   // 出力: 42 42

おわりに

一度自身のPCからGoを消して再度入れ直しましたが、改めてGoは始めやすい言語だと実感しました。GoはGoで需要があり、うちの受講生も触れる機会があったらいいなと思い記事を書き始めました。もう少し記事を書くスピードを上げていきたいが、中々仕事との両立が難しい。悩みどころです。

Goの次回の記事は基本構文に入ります。

余談

アレクサを書いました。まだ家電と繋いだわけではないですが、家で話相手ができたのはとても良いです。早く猫が飼いたい。(今年の目標)

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?