0
0

goの基本的な文法をまとめてみた

Posted at

goを勉強中なので、javaScriptと比較しながら基本的な文法をまとめてみました。

基本的なループ

【javaScript】
for (let i = 0; i < 10; i++) {
    console.log(i);
}

【go】
for i := 0; i < 10; i++ {
    fmt.Println(i)
}

条件分岐

【javaScript】
if (x > 0) {
    console.log("xは正です");
} else if (x < 0) {
    console.log("xは負です");
} else {
    console.log("xは0です");
}

【go】
if x > 0 {
    fmt.Println("xは正です")
} else if x < 0 {
    fmt.Println("xは負です")
} else {
    fmt.Println("xは0です")
}
【javaScript】
switch (x) {
    case 1:
        console.log("xは1です");
        break;
    case 2:
        console.log("xは2です");
        break;
    default:
        console.log("xは1でも2でもありません");
}

【go】
switch x {
case 1:
    fmt.Println("xは1です")
case 2:
    fmt.Println("xは2です")
default:
    fmt.Println("xは1でも2でもありません")
}

配列に格納された文字を連結する

【javaScript】
let str = ''
let array = [
    "val1",
    "val2",
    "val3",
    "val4"
]
for (val in array) {
    str += val;
}

【go】
package main

import (
    "fmt"
    "strings"
)

func main() {
    var str strings.Builder
    array := []string{
        "val1",
        "val2",
        "val3",
        "val4",
    }
    for _, val := range array {
        str.WriteString(val)
    }
    fmt.Println(str.String())
}

配列に格納された文字を、空の配列を定義した変数の中へ格納する

【javaScript】
let newarr = []
let array = [
    "val1",
    "val2",
    "val3",
    "val4"
]
for (val in array) {
    newarr.push(val)
}

【go】
package main

import "fmt"

func main() {
    array := []string{
        "val1",
        "val2",
        "val3",
        "val4",
    }
    newarr := make([]string, 0, len(array))
    for _, val := range array {
        newarr = append(newarr, val)
    }
    fmt.Println(newarr)
}

オブジェクトに格納されたキーと値を文字列連結する

【javaScript】
let str = ''
let obj = {
    "name": "yuya",
    "address": "tokyo",
    "age": "31"
}
for (key in obj) {
    str += `${key}: ${obj[key]}, `
}

【go】
package main

import (
    "fmt"
    "strings"
)

func main() {
    var str strings.Builder
    obj := map[string]string{
        "name":    "yuya",
        "address": "tokyo",
        "age":     "31",
    }
    for key, value := range obj {
        str.WriteString(fmt.Sprintf("%s: %s, ", key, value))
    }
    fmt.Println(str.String())
}
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