■ はじめに
https://dk521123.hatenablog.com/entry/2020/04/12/145237
https://dk521123.hatenablog.com/entry/2020/04/03/000000
の続き。 今回は、GO言語の基本的な文法に触れる。 なお、その他の文法は、以下の関連記事を参照のこと。
Golang ~ 基本編 / 関数 ~
https://dk521123.hatenablog.com/entry/2021/05/03/000000
Golang ~ 基本編 / 構造体 ~
https://dk521123.hatenablog.com/entry/2021/05/01/000000
Golang ~ 基本編 / ポインタ/アドレス ~
https://dk521123.hatenablog.com/entry/2021/05/02/000000
目次
【1】変数宣言 【2】判定(IF文, SWITH文) 【3】繰り返し(FOR文) 【4】配列 【5】辞書 【6】型変換 【7】import 【8】定数・Const
【1】変数宣言
package main import "fmt" func main() { // 方法1:「var」 var value1_1 int = 1 var value1_2 float64 = 1.2 var value1_3 string = "Hello" var value1_4 bool = true fmt.Println(value1_1, value1_2, value1_3, value1_4) fmt.Println("=+=+=+=+=+=+=+=+=+=+=+=+") // 方法2:「:=」 value2_1 := 1 value2_2 := 1.2 value2_3 := "World" value2_4 := false fmt.Println(value2_1, value2_2, value2_3, value2_4) fmt.Printf("%T, %T, %T, %T", value2_1, value2_2, value2_3, value2_4) }
出力結果
1 1.2 Hello true =+=+=+=+=+=+=+=+=+=+=+=+ 1 1.2 World false int, float64, string, bool
【2】判定(IF文, SWITH文)
package main func main() { money := 200 price := 200 if money > price { println("You can buy it") } else if money == price { println("You can, but...") } else { println("You don't have enough money") } index := 3 switch index { case 0: println("0") case 1, 2: println("1 OR 2") default: println("default") } }
【3】繰り返し(FOR文)
package main import "fmt" func main() { // for for i :=0; i < 5; i++ { fmt.Printf("i = %d\n", i) } // while的 coundown := 5 for coundown > 0 { fmt.Printf("coundown: %d\n", coundown) coundown-- } // foreach的 values := [2]string{"Hello", "World"} for i, value := range values { fmt.Printf("index: %d, name: %s\n", i, value) } }
出力結果
i = 0 i = 1 i = 2 i = 3 i = 4 coundown: 5 coundown: 4 coundown: 3 coundown: 2 coundown: 1 index: 0, name: Hello index: 1, name: World
【4】配列
package main import "fmt" func main() { var array1 [2]int array1[0] = 100 array1[1] = 200 fmt.Println(array1) var array2 []int = []int{110, 220} array2 = append(array2, 330) fmt.Println(array2) var array3 []int = []int{1, 2, 3, 4, 5, 6} fmt.Println(array3[0]) fmt.Println(array3[1:3]) fmt.Println(array3[:2]) fmt.Println(array3[2:]) fmt.Println(array3[:]) // Make & Cap array4 := make([]int, 3, 5) fmt.Printf("len=%d cap=%d value=%v\n", len(array4), cap(array4), array4)
出力結果
[100 200] [110 220 330] 1 [2 3] [1 2] [3 4 5 6] [1 2 3 4 5 6] len=3 cap=5 value=[0 0 0]
【5】辞書
package main import "fmt" func main() { mapper := map[string]int {"key1": 100, "key2": 200} fmt.Println(mapper["key1"], mapper["key2"]) mapper2 := make(map[string]int) mapper2["key3"] = 300 fmt.Println(mapper2["key3"]) }
出力結果
100 200 300
【6】型変換
package main import "fmt" import "strconv" func main() { // float64 => int var floatValue float64 = 1.2 intValue := int(floatValue) fmt.Printf("%T, %v\n", intValue, intValue) // string => int var strValue string = "2020" intValue2, _ := strconv.Atoi(strValue) fmt.Printf("%T, %v\n", intValue2, intValue2) }
出力結果
int, 1 int, 2020
【7】import
package main import "fmt" import "time" import "strings" func main() { fmt.Println("Now : ", time.Now()) result1 := strings.Replace("Hello", "e", "a", 1) fmt.Println("result1 : ", result1) result2 := strings.Contains("Hello", "H") fmt.Println("result2 : ", result2) }
出力結果
Now : 2020-04-21 22:30:48.8669446 +0900 JST m=+0.002969201 result1 : Hallo result2 : true
【8】定数・Const
package main import "fmt" // User 文字列定数 const User = "Mike" // Pi 数字定数 const Pi = 3.1415 func main() { fmt.Println(User, Password) }
関連記事
Golang ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/04/12/145237
Golang ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2020/04/03/000000
Golang ~ 基本編 / 関数 ~
https://dk521123.hatenablog.com/entry/2021/05/03/000000
Golang ~ 基本編 / 構造体 ~
https://dk521123.hatenablog.com/entry/2021/05/01/000000
Golang ~ 基本編 / ポインタ/アドレス ~
https://dk521123.hatenablog.com/entry/2021/05/02/000000
Golang ~ 基本編 / インターフェイス ~
https://dk521123.hatenablog.com/entry/2021/05/04/000000
Golang ~ 並列プログラミング(Goルーチン/チャネル) ~
https://dk521123.hatenablog.com/entry/2021/05/05/000000