By filling out this form and clicking submit, you acknowledge our privacy policy.
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 に空きが無い場合は送信側
2018/01/23 20:35:46 goroutine 2018/01/23 20:35:47 finish``` **go f()**が実行されてから、すぐに**log.Println("main")**が実行されていることが分かると思います。 こんなに簡単に並列処理ができるのはすごいですね...(まだ、使いこなせる気はしないですが) goroutineは**並列処理している関数が終了した時に終了されます。** ##channel channel は goroutine 間での変数の受け渡しができます。 <- (オペレータ)を使って、値の受け渡しをするのですが、どういう型の値を扱うのか宣言できたりもします。 また、値の受け渡しがされてから、値が届くまでブロックしてくれるので、待ち時間を設ける必要がありません。 ```go:channel.go package main import
特集のはじめに Goは、2009年にGoogleにより発表されたオープンソースのプログラミング言語です。C言語の開発者Ken Thompson、UTF-8の開発者Rob Pike、memcachedの開発者Brad Fitzpatrickといった名だたるエンジニアによって開発されています。 Goはシンプルな言語仕様であるため学習が比較的容易で、豊富な標準パッケージが同梱されているためすばやく目的を達成できます。また、巨大なコードでも高速にコンパイルできるため大規模開発にも適しており、Windows、OS X、Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがあるため作成したプログラムを容易に配布できます。並行処理のサポートも充実しており、ミドルウェアの開発などにも適しているとされています。 本特集では、2014年6月にリリースされた最新バージョンであるGo 1.
元ネタ あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずGo言語について知っていることを書いた。 パッケージマネージャ 標準でついてるgoツールを使おう。必要なライブラリはリポジトリから、go getで取ってこよう。 http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージのnet/httpパッケージを使えばhttpサーバを動かすことができる。apacheやnginxで動かしたかったら、標準パッケージのnet/http/cgiパッケージやnet/http/fcgiパッケージを使えばいい。 http://golang.or
速さは正義! やはり「最速」という言葉は胸を熱くするものがあります。 使うWebフレームワークのレスポンスが速ければ速いほど、ユーザービリティはよくなる上に、必要なサーバー台数も減らせるなど、いいことづくめです。 ただ、レスポンスの速さだけを追い求めて機能を削ったものは、開発の速度を遅くします。 Web開発に通常必要な機能は全て用意した上で、なお速い、そんな都合のいいフレームワークが求められます。 そこで、最近知った「revel」という「最速」にして「フルスタック」のWebフレームワークについて、調べたことを記載していきます。 今回は、 速さの計測方法解説 revelの概要 Go言語の概要 revelのインストール・実行までの手順 などについて記載します。 ※ ここで言っている「最速」とは、一秒間に何レスポンス返せるか、というような、ベンチマーク的な意味です。 ※ ここで言っている「フルス
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く