"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
I am trying to generate a random string in Go and here is the code I have written so far: package main import ( "bytes" "fmt" "math/rand" "time" ) func main() { fmt.Println(randomString(10)) } func randomString(l int) string { var result bytes.Buffer var temp string for i := 0; i < l; { if string(randInt(65, 90)) != temp { temp = string(randInt(65, 90)) result.WriteString(temp) i++ } } return resu
Goを書いていてrecoverを使うことはまずほとんどない。頻繁にrecoverを書いているとしたらなにかが間違っているのでプログラミングスタイルを見直すこと。 Goでのエラーハンドリング Effective Goなどで説明されているように、Goではエラーは関数の返り値として返される。たとえばio.ReaderのRead関数は、読み込んだバイト数と、(nilかもしれない)エラーの2つの値を返す。Goでは基本的に、エラーは常にこういう通常の値としてハンドルするべきで、エラーの時のための特別な制御構造(try 〜 catch)のようなものを使うのは、利点より害のほうが多いという考え方をとっている。 (同じような考えで例外を使用禁止にしている大規模C++プログラムはいくつもある。たとえばChromiumなどはそうだ。LLVM/Clangもパフォーマンス上の問題で例外を使っていない。C++コンパイ
Go言語でパッケージのテストを書く時に、プライベートな関数(隠蔽した関数)や定数を呼び出したいことがたまにあります。 これを実現する方法をメモ。 プライベートって? パッケージの内容は以下のような構成になっているとします: eg.go eg_test.go ここで: eg.go: package eg import () func foo() string { return "foo" } という実装があります。関数名のはじまりを小文字fooにし、意図的に関数を外部から隠蔽しています。これでプライベートになります。(というか、基本は小文字で隠蔽し、公開したい場合は大文字にするといった使い方になるはずです) さて、テストコードから隠蔽したメソッドを呼ぶにはどうしたらいいでしょう。 関数名のはじまりを大文字にし、Fooとして公開(エクスポート)したくなります。が、公開する必要がないのに公開する
Incidentally, decoding JSON data (or really, almost any data structure) is really easy in Go (golang). We simply call json.Unmarshal(…) and boom! We have nice data structures. Well, except if our input source is not very well defined (meaning not strictly typed). Objects with loose schema Take this example. We want to decode a JSON object that looks like this: { "author": "attilaolah@gmail.com", "
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く