がじぇ

お金と家電とプログラミングのブログ

夏休み1日目で学んだこと(UdemyのGo講座)

おはようございます。

がじぇったー (@hackmylife7) | Twitter


です。


昨日から以下の講座をやっておりますが、
ついついクラッシュロワイアルというゲームをやりすぎて
全然進んでなくて猛省しています。

現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発


今日はしっかり勉強して巻き返したいと思います。
ブログに書きつつしっかり復習していきたいと思います。


文法まわりはしっかり頭にいれないといけないので、ここ重要だな、と思ったら
写経しながらやってます。

そこらへんをブログに書いていきます。

TL;DR(要約)

  • さぼらないでしっかりやろう

環境構築

vs-codeで環境構築しました。


hello world

おきまりのhello worldですね。goはこういう風に書くんだ〜くらいです。

package main

import "fmt"

func init() {
	fmt.Println("Init")
}

func bazz() {
	fmt.Println("Bazz")
}

func main() {
	bazz()
	fmt.Println("Hello world", "test")
}

importの仕方

import するライブラリのディレクトリも記載しないといけないのか

import (
	"fmt"
	"os/user"
	"time"
)

変数宣言

型の宣言方法、var()にすると関数外からも呼び出せる

package main

import "fmt"

func main() {
	var (
		i    int     = 1
		f64  float64 = 1.2
		s    string  = "test"
		t, f bool    = true, false
	// var f bool = false
	)
	fmt.Println(i, f64, s, t, f)
	// ショートの型宣言は関数内でしか使えない
	// int型を宣言
	xi := 1
	xf64 := 1.2
	xs := "test"
	xt, xf := true, false
	fmt.Println(xi, xf64, xs, xt, xf)

}

Plintlnで書式を指定して標準出力にだす

書式 出力される内容
%T 型の出力
%v 対象データ
%f 指数なしの小数
%d 10真数

文字列操作

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println("hello")
	fmt.Println(string("hello"[0]))

	var s string = "hello"
	// 文字列replace
	s = strings.Replace(s, "h", "x", 1)
	fmt.Println(s)
	fmt.Println(strings.Contains(s, "world"))
}

出力

$ go run  string.go 
hello
h
xello
false

文字列から数値型へ

package main

import (
	"fmt"
	"strconv"
)

func main() {

	var s string = "14"
	i, _ := strconv.Atoi(s)
	fmt.Printf("%T %v", i, i)
}

配列

配列はサイズを変更できないが、スライスは配列に追加することが可能

package main

import "fmt"

func main() {
	// 配列
	var a [2]int
	a[0] = 100
	a[1] = 200
	fmt.Println(a)

	// スライス
	var b []int = []int{100, 200}
	b = append(b, 300)
	fmt.Println(b)
}

出力

$ go run list.go 
[100 200]
[100 200 300]