Golang

スライスから削除する(deleteみたいな関数はない)

deleteみたいな関数はないようなので自分で書きましょう。ダメな例 func delete(s []int, i int) []int { s = append(s[:i], s[i+1:]...) return s } func main() { s := []int{1, 2, 3, 4, 5} s = delete(s, 2) //slice:[1 2 4 5], len:4, cap:5 fmt.Printf…

配列に要素があるか確認する方法(containsみたいな関数はない)

containsみたいな関数はないようなので自分で書きましょう。 func contains(s []int, e int) bool { for _, v := range s { if e == v { return true } } return false }

Golangで任意の型にあたるものはinterface{}

こんにちは。がわわです。自分が詰まった部分は「Google App EngineのDatastoreで*Keyの配列をjsonで返す」というところでした。 以下は、ヘッダーに書かれたユーザーIDのtweet一覧をTweetというカインドから引っ張ってきて、keyとtweetをjsonで返す関数を書…

A Tour of Go63~72学習メモ

goroutineは軽量なスレッド go funcでfuncを別スレッドで実行できる 同期する際はチャネルを使う チャネルに値を受信するまで送信されないし、受信の準備ができるまでチャネルから送信されない ch := make(chan 型)の形で生成 チャネルにはバッファ(許容量…

A Tour of Go55~62学習メモ

インターフェース型のerrorにError() stringという文字列を返すメソッドが定義されている 返すエラーを自分で定義する際はstructを定義して、Error() stringのメソッドを実装 httpパッケージからHTTPリクエストの処理機能が提供されている インターフェース…

A Tour of Go42~54学習メモ

Goの関数はクロージャ クロージャとはそれ自身の外部から変数を参照する関数の値 43での実装例はadder関数がクロージャを返していて、sum変数が関数に関連づけられて保持されている switch文でcaseの最後で自動的にbreakする breakせずに通したい場合はfallt…

A Tour of Go31~41学習メモ

こんにちは。がわわです。sliceとmapが主な内容です。 参照渡し、値渡しって注意しないとなんだかよくわからなくなっちゃいますね。【slice】 sliceはarrayのように要素数を明示的に表示しない柔軟な配列 sliceにsliceを代入する際は参照を渡す sliceやarray…

A Tour of Go16~30学習メモ

こんにちは。がわわです。 今のところ滞りなく進められているので楽しいです。 以下、学習メモ。(自分で調べたものも含まれています) iotaは定数の宣言で使用されconstが出るたびにリセットされて0になる、グループ内で定数を定義するごとに1増える >は右…

A Tour of Go1~15学習メモ

こんにちは。がわわです。GolangでAPIを書いていて、わからないことが多くてしんどいことが多いので、基本を勉強するべきだと思い"A Tour of Go"の学習を開始しました。実行環境が用意されているので楽しく勉強できます。 自分の学習法は 一度動かしてみて結…

ローカルのGoogle App EngineのDatastoreにアクセスする

goapp serveした状態で http://localhost:8000 にアクセスするだけです。これでいちいちデプロイしなくても動作確認できますね。