【Go言語入門!】基本的な構文について徹底解説!【初心者にオススメ!】
こんにちは!たけのこです。
今回は、Go言語で使用される基本構文について解説していきます。
Go言語は他の言語と違い、様々な記述が省略されているため
少し戸惑うところもあるかもしれませんが、
順番にたどっていけば理解できると思いますので、ゆっくり見ていってください!
では、早速行きましょう!
まずはじめに
まず最初に、Goの環境設定から始めます。
Go言語のインストールが終わっている人は、こちらの作業をスキップしちゃってOKです!
Go言語のインストールがまだの人はこちらの公式サイトからインストールしてください。
インストール完了後、コマンドプロンプトから以下のコマンドを入力して確認してください
1go version
これでGoのバージョンが表示されれば、インストールされています。
また、今回はVisualStudioCodeというプラットフォームを使用してコーディングを行なっていきます。
こちらは、幅広い言語に対応しているのに無料という神ツールなので
是非インストールしておきましょう!
基本的なプログラム構造
では、プログラミングの勉強したことある人なら1度は見たことのある
「Hello, World」プログラムを実装してみましょう。
まずは、「main.go」ファイルを作成して下記コードを記載して下さい。
1package main
2
3import "fmt"
4
5func main() { fmt.Println("Hello, World") }
あとは、「main.go」ファイルが格納されているフォルダを指定して実行してみましょう!
1main.goファイルが格納されているパス>go run main.go
こちらで行なっている内容は下記の通りです。
- package main:
Goのプログラムはパッケージで構成されており、ここではpackageの指定をしています。格納されているフォルダの指定だと思ってもらえればOKです! - import “fmt”:
標準ライブラリのfmtをインポートし、コンソールに出力する機能(fmt.Println)を使えるようにしています。 - func main():
main
関数はプログラムのエントリポイントです。プログラムが実行されると、この関数が一番最初に呼び出されます。
変数と定数
次に、変数と定数の使い方について解説します。
まずは変数の基本的な使い方からです!
変数の使い方について
var
キーワードを使って変数を宣言し、
必要に応じて型を指定します。
1 var name string
2 name = "Go言語"
こちらでは、1行目でnameという文字列型(string型)の変数を宣言し、
2行目で”Go言語“という値を代入しています。
また、こちらを1行にまとめて書くこともできます。
1var age int = 30
でも、わざわざ型を指定するのもめんどくさいなぁ…
という場合は、
わざわざ型を明示的に指定しなくても、
Go側が自動的に型を推論して設定してくれる書き方もあります。
1name := "Go言語"
2age := 30
このように、「:=」
を使って変数を宣言すると、
Goが適切な型を自動的に判断してくれます。
定数の使い方について
定数はconst
キーワードを使って宣言します。
1const pi = 3.14
使い方は変数と同じですが、
定数は消費税や円周率など、変更できない値を保持するために使われます。
基本的なデータ型
先ほど、変数の定義について解説しましたが
次に、変数の使い方の所の話でも出てきた型について解説します。
Go言語にはいくつかの基本的なデータ型がありますが
中でも使用頻度の高い型を4つ紹介します。
- 整数型:
int
,int8
,int16
,int32
,int64
- 浮動小数点数型:
float32
,float64
- 文字列型:
string
- ブール型:
bool
整数型から順番に宣言するには、以下のように指定します。
1var w int = 10
2var x float64 = 3.14
3var y string = "Go言語"
4var z bool = false
制御構文
プログラムの流れを制御するための基本的な構文も見てみましょう!
まずは条件分岐からです!
条件分岐(if文)
条件分岐(if文)とは、その名の通り
「もし、A=1の場合は、Bの処理をする」
というように、条件によって処理を切り分ける制御構文です。
他の言語を勉強していた人であれば違和感に気付くかもしれませんが
Goのif
文は、括弧が不要となります。
1if age >= 18 {
2 fmt.Println("大人です")
3} else {
4 fmt.Println("子供です")
5}
ループ(for文)
ループ(for文)とは
「Xが○○の間、同じ処理を繰り返す」
といった、初心者の方々がよく詰まってしまう制御構文の1つです。
こちらも他の言語と似たような書き方になります。
1for i := 0; i < 10; i++ {
2 fmt.Println(i)
3}
こちらのfor
文では、変数 i に格納した0をコンソールに出力し、
出力したら i の数字に1をプラスしてコンソールに出力….
と、同じ処理を「i < 10」が成立する間、繰り返すことで
0から9までの数字をコンソールに出力する処理を行なっています。
関数
関数とは、とある処理を部品化することで
また別の処理でも再利用できるようにする書き方です。
関数の定義は次のように行います。
1func greet(name string) string {
2 return "Hello, " + name
3}
このgreet
関数は、文字列を引数として受け取り、
挨拶のメッセージを返しています。
こちらの関数を呼び出すには次のようにします。
1message := greet("Go言語")
2fmt.Println(message)
構造体
構造体とは、様々なデータ型などのフィールドを1つにまとめるデータ定義方法です。
コードを見た方が、イメージが湧くと思いますので
下記のコードをご覧ください。
1type Person struct {
2 Name string
3 Age int
4}
5
6func main() {
7 person := Person{Name: "Alice", Age: 30}
8 fmt.Println(person.Name)
9 fmt.Println(person.Age)
10}
この例では、Person
という構造体を定義し、Name
とAge
というフィールドを持たせています。
その下のmainメソッドでは、定義した構造体のデータを
それぞれコンソールに出力するような実装になっています。
まとめ
今回は、Go言語の基本構文について解説しました。
Go言語は書き方がシンプルなので、
プログラミング初心者からすると、勉強しやすい言語だと思います。
逆に、
プログラミングを少し勉強していた人からすると、書き方が大幅に省略されていることがあるので、違和感を感じるかもしれません。
近年では、徐々にGo言語の案件が増加傾向にあるので
習得しておいて損はないと思います!
ということで、今回はこの辺りで!
ありがとうございました!