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())
}