0
0

Goを基本からまとめてみた【入門】

Last updated at Posted at 2024-05-09

go mod init

  • go mod init は、新しいGoモジュールを初期化するためのコマンドで、このコマンドを実行すると、モジュール名をパラメータとして受け取り、その名前で新しいモジュールを作成する。
go mod init booking-app
  • Goプログラミング言語のコマンドの一部で、これを使用すると、Goプログラムをビルドして実行できる。
go run <file-name.go>

Vimを使って.zshenvファイルを編集する手順

vim .zshenv

※Press i to enter insert mode.
※Press Enter to add a new blank line.
※Press Esc to return to normal mode.
※Type :wq to save and exit.

基本文法

(1)pacakgeについて

  • goのコードは、全て何らかのパッケージに属する
sample.go
package main

import "fmt"

func main(){
	fmt.Println("Hello World")
}

(2)変数について

sample.go
package main

import (
	"fmt"
)

func main(){
	//① var 変数名 型
	var i int
	i = 10
	fmt.Println("変数", i)
	//② var 変数名 = 型
	var j = 10

	fmt.Println("変数", j)
	//③ 変数名 := 値
	k := 10

	fmt.Println("変数", k)
    //④ 変数名1, 変数名2 := 値1, 値2
}

(3)ループ処理 ※ goの場合、forしかない

① for

sample.go
package main

import (
	"fmt"
)

func main (){
   sum := 0
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println(sum)
}

② whieみたいな書き方

sample.go
package main

import (
	"fmt"
)

func loop (){

//② whieみたいな書き方
	sum := 1
	for sum < 10 {
		sum += sum
	}
	fmt.Println(sum)

}

③ 配列の宣言方法

  • []型{要素1,要素2,...}
sample.go
package main

import (
	"fmt"
)

func loop (){

//③ 配列の宣言方法
	
	arr := []string{"hoge","hoge","hoge"}
	for _, num := range arr {
		fmt.Println(num)
	}
}

(4)条件分岐

sample.go
package main

import "fmt"

func isEven(num int) {
	if num % 2 == 0 {
		fmt.Printf("%d is even \n", num)
	}
}

func branch (){
	arr := []int{2,3,5}
	for _, num := range arr {
		isEven(num)
  }
}

(5)構造体 + メソッド

  • 構造体名{プロパティ1: 値, プロパティ2: 値 }
sample.go
package main

import "fmt"

type Rectangle struct  {
	width, height int
}

func (r Rectangle) Area() int {
	return r.width * r.height
}

func structure (){
	r := Rectangle{width:20, height:30}
	area := r.Area()
	fmt.Println(area)
}

(6)ポインター

  • pがポインター変数 ポインター変数にはアドレスを格納する

①ポインター

sample.go
package main

import "fmt"

func pointer() {
	i := 10
	p := &i

	*p = 11
	fmt.Println(*p)
}

②var ポインタ変数 *型

sample.go
package main

import "fmt"

func pointer() {
//②var ポインタ変数 *型
	var p *int
	i := 10
	p = &i

	*p = 11
	fmt.Println(*p)
}

参考サイト

【Go言語マスター#2】現役エンジニアがGo言語を解説! 〜Goのプログラムを実行〜
ちゃんと理解するGo言語開発環境構築:go mod initとその必要性
【Go 言語入門】基本文法からポインタ・構造体など丁寧に解説!

0
0
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
0
0