« Software Design 2018年7月号「Vim 絶対主義」の執筆に参加しました。 | Main | ボタンを押したら golang の if err... を自動入力 » tensorflow といえば Python と思っておられる方も多いのではないでしょうか。間違いではないのですが、これは初期に作られた Python 向けのバインディングに研究者達が多く食いついた結果に過ぎないと思っています。実際 tensorflow は現在 C言語、C++、Python、Java、Go から利用する事ができ、最近では JavaScript にも移植されています。筆者自身も Go で tensorflow を使ったシステムを構築し、運用保守しています。問題も発生せず機嫌良く動いています。学習の利用部分は GPU のパフォーマンスに依存しますが、それ以外の部分については各言語の実装に依存し
type Point struct { x, y int } func main() { point := Point{x: 20, y: 50} if point == nil { fmt.Println("point is nil") } } こんな感じにpoint == nilのように比較するとコンパイルエラーなります。 cannot convert nil to type Point 要は値とnilを比較するのがダメなので、 &point == nilのように参照と比較するとすれば良いです。 2014/10/15 追記 コメント頂きましたが、サンプルコードでは zero value で初期化されているので決してtrueになりませんが参照と比較しないとダメということで。 goのnil判定は思ったよりも複雑なようなので、タイトル「nilの判定方法」から変更しました。 Register
概要 先日の golang.tokyo #6 - connpass で独自のエラー型でnilにハマった点に触れられていて、自分でもふわっとしか覚えてなかったのでまとめ。 覚えること 以下を覚えておけばとりあえず大丈夫です。 nilは型を持つ interfaceの場合のみ、型もnilでないとxxx == nilはfalse nilを扱う型は pointer function map slice channel interface がありますが、注意するのはinterfaceのみで大丈夫です。 解説 nilは型を持つ nilは型と値の2つを持ちます。 func main() { var i32 *int32 fmt.Println(reflect.ValueOf(i32).IsNil()) // true fmt.Println(reflect.TypeOf(i32)) // *int32 v
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く