Go言語には、C言語やJavaにおける「enum(列挙型)」のような機能がありません。 Go言語をやり始めて最初にこれを知った時、 え嘘でしょ? と言いたくなりました。 が、実際には 定数定義とiotaを利用することでC言語における列挙型に近い振る舞いを実現することが可能です。 例えば、Red, Blue, Yellowを持つColorというenumを作る場合は以下のように定義します。 type Color int const ( Red Color = iota Blue Yellow ) で、iotaって何ですかって話なんですが。 識別子iotaは、定数宣言文(const)内で使用される、型なしの連続する整数定数を表します。 本定数は予約語constが現れた時に0に初期化されて、各定数定義の後に1ずつインクリメントされます。 ちなみに読み方は「イオタ」。 例えば、iotaを使って定数(
構造体を使いましょう C言語にもある機能で、いろいろあるデータをまとめて1つのまとまりにしたものです。 JavaScriptでいうオブジェクト、Javaでいうクラスのようなものです。 Goの場合はC言語の構造体よりもう少し便利な機能もあるので、そのへんもふまえて解説します。 動作環境 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.9.4 Go : 1.4.1 IDE : IntelliJ IDEA 14 CE ここを参考に、GOPATHとGOROOTは設定しておいてください。 構造体の基礎 Goの構造体はC言語の構造体とだいたい同じですが、 ・メソッドの定義 ・構造体埋め込み 等の機能も持っています。 Goはクラスや継承の機能がサポートされていませんが、上記機能 + αを使用することでオブジェクト指向プログラミングが可能になります。 構造体の定義と初期化 構造体
Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 この記事は Go Advent Calendar 2017 の 1 日目の記事です。 Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。 Go の channel の基礎 入門資料として使いたいので、本題に入る前にざっくり基礎を。 定義のパターン channel には capacity という概念があります。 capacity は channel 内でバッファリングしておける容量のことで、 capacity に空きが無い場合は送信側
package main import ( "log" "time" ) func f() { log.Println("goroutine") } func main() { go f() log.Println("main") time.Sleep(time.Second) log.Println("finish") } 実行結果 2018/01/23 20:35:46 main 2018/01/23 20:35:46 goroutine 2018/01/23 20:35:47 finish go f()が実行されてから、すぐにlog.Println("main")が実行されていることが分かると思います。 こんなに簡単に並列処理ができるのはすごいですね...(まだ、使いこなせる気はしないですが) goroutineは並列処理している関数が終了した時に終了されます。
<初日に90万部以上が売れたというボブ・ウッドワード著の暴露本は、トランプがアメリカを崖っぷちの危機に追い込んでいる事実を突きつける> トランプ就任後、ジャーナリストのマイケル・ウルフ著『炎と怒り(原作タイトル:Fire and Fury)』、元大統領補佐官オマロサ・マニゴールト著『Unhinged(錯乱状態)』など、大統領と彼を取り巻くホワイトハウスの実態を公に知らせる暴露本が次々と発売されている。その中で最も期待されていたのが、9月11日発売のボブ・ウッドワードの『Fear(恐怖)』だった。初版のハードカバーは100万部刷られ、発売と同時にアマゾンのベストセラーリストのトップに躍り出た。ウッドワードの講演マネジャーによると初日に90万部以上が売れたということで、出版社サイモン&シュスターにとって史上最高の記録になった。 今年1月にベストセラーになったウルフの暴露本は大統領選でトランプを
世界100カ国以上で800万人以上が利用するビジネス向けチャット「slack」のサンフランシスコ本社に勤務している Tomomi Imuraさん。活躍の場は現職に留まらず、日本とシリコンバレーを繋ぐカンファレンスの講演など多岐に渡ります。 そんなTomomiさんの現在に到るまでの話から今後の目標や課題を含め、大いに語ってもらいました。抜群のセンスで世界のエンジニアを魅了した『猫』のお話も登場します。 現在のお仕事、ポジションについて こんにちは。現在サンフランシスコの Slack 本社で Developer Advocate の Tomomi Imura です。以前はマネージメントも含め、Developer Relation の仕事の全般をこなしていたこともあります。 ですが、今の会社では担当を分けていることもあり、私は Slack API の使い方を説明するチュートリアルを書いたり、ワー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く