2020-04-22から1日間の記事一覧

型の変換

Go

キャスト var i uint8 = 3 var j uint32 = uint32(i) // uint8 -> uint32 fmt.Println(j) // 3 var s string = "abc" var b []byte = []byte(s) // string -> []byte fmt.Println(b) // [97 98 99] // cannot convert "a" (type string) to type int a := in…

ポインタについて

Go

構造体を生成して変数に代入する時に,構造体の前に&を付けると,変数には構造体の値ではなくアドレスが格納される。 var task Task = Task{} // Task型 var task *Task = &Task{} // Taskのポインタ型 参考 第3章 型システム―型を用いた安全なプログラミン…

typeを用いた既存の型を拡張する

Go

func ProcessTask(id, priority int) { } という関数を考える時、2つの引数id, priorityはどちらもint型。 なので、もし間違えてidとpriorityの順序を逆にして使ってしまっても普通に動いてしまう。 これを防ぐために使えるのがtype 以下のように、int型をty…

パッケージをimportする時のオプション

Go

package main import ( f "fmt" // 任意の文字をつけるとプログラム内ではその文字で代用できる(今の場合はf) _ "github.com/wdpress/gosample" // 使わないパッケージには - をつける . "strings" // . をつけるとパッケージ名を省略できる ) func main() {…