たなしょのメモ

日々勉強していることをつらつらと

2020-07-01から1ヶ月間の記事一覧

7/20 週報

週報7/20 Go メソッド、値レシーバー、ポインタレシーバー オブジェクト指向でコードを書けることができるのか。 package main import "fmt" type Vertex struct { X, Y int } func (v Vertex) Area() int { return v.X * v.Y } func (v *Vertex) Scale(i in…

Goの学習メモ11

可変長 引数を可変長にすることができるらしい。 package main import "fmt" func foo(params ...int) { fmt.Println(len(params), params) for _, param := range params { fmt.Println(param) } } func main() { foo() foo(10, 20) foo(10, 20, 30) s := […

Goの学習メモ10

新しく また新しく初心者向けの教材を始めた。 今回はビデオ教材を使ってGoを学習していくことにする。 頑張ろう。 init init関数を書くとmainより先に実行してくれるのか。 初期設定などで使えるかもしれない。 func init() { fmt.Println("Init!") } packa…

Goの学習メモ9

Goメモ channels goroutineを理解できず次の単元に来てしまった。 チャネル型について扱っているらしい。なんとなく理解できた package main import "fmt" func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } c <- sum } func main…

Goの学習メモ8

Goメモ Readers データストリームを読み込むio.Readerストリームが存在するらしい。 8byteとずつ読み込ませて表示するソースコードが下記。 package main import ( "fmt" "io" "strings" ) func main() { r := strings.NewReader("Hello,Reader!") b := make…

Goの学習メモ7

本日のGo 忙しすぎて中々Goの勉強ができない。 interface Javaで実装した時以来久しぶりに触る概念。 理解するのはとても大変そう。 package main import "fmt" type I interface { M() } type T struct { S string } func (t T) M() { fmt.Println(t.S) } f…

Goの学習メモ6

本日のGo 連続更新は難しい。 ポインタレシーバ ある宣言した型のメモリにアクセスして値を変更する処理。 package main import ( "fmt" "math" ) type Vertex struct { X, Y float64 } func (v Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y…

Goの学習メモ5

Goの学習メモ 昨日はあまりにも眠くてGoの勉強ができませんでした。 Maps なれない型だ。 キー値に紐付いているらしい。 なのでキー値を指定してあげればデータが取れる。 m["Bell Labs"] = Vertex{ 40.68433, -74.39967 } m["Jordan"] = Vertex{ 1.3333, -1…

Go学習メモ4

本日はGo アロマディフューザーを買った。 とてもいい匂いがするし、素晴らしい買い物だった。 slice型を更に詳しく 可変長配列のように値をもたせることもできるらしい。 s := []struct { i int b bool }{ {12, true}, {34, false}, {23, true}, } fmt.Prin…

Go学習メモ3

本日もGo 昨日猛烈な勢いでタスクを終わらせたので今日は楽をすることできた。 ポインタ Goにポインタがあったんだとびっくりしたけど、そういえばC言語で作られたプログラムのバイナリとGo言語で作られたバイナリが違うって聞いたことがある。(確か それだ…

Go学習メモ2

本日のGo 案件も忙しくなってきたので睡眠不足の毎日。 switch文 Goのswitch文はbreakを使わなくても良い switch os := runtime.GOOS; os { case "darwin": fmt.Println("0S X. ") case "linux": fmt.Println("Linux. ") default: fmt.Printf("%s.\n", os) }…

Go学習メモ2

今日もGoについてつらつらと 昨日に引き続き A Tour of Goを実施していく中での気づくを書いていく。 for文 package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) } javaやCとほぼほぼ同じ文法。 ()を…