サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
golang.jp
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "http" httpパッケージは、HTTPリクエスト、レスポンス、およびURLの解析を実装しており、拡張可能なHTTPサーバと基本的なHTTPクライアントを提供します。 パッケージファイル chunked.go client.go dump.go fs.go lex.go persist.go request.go response.go server.go status.go transfer.go url.go 定数 RFC 2616で定義されているHTTPステータスコード。 const ( StatusContinue = 100 StatusSwitchingPr
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "strings" 文字列操作を行うシンプルな関数を集めたパッケージです。 パッケージファイル reader.go strings.go Contains関数 func Contains(s, substr string) bool Containsは、s内にsubstrがあるときtrueを返します。 Count関数 func Count(s, sep string) int Countは、s内のsepの重複しない個数をカウントします。 Fields関数 func Fields(s string) []string Fieldsは、文字列sをひとつ以上の連続したホワイトスペ
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 チュートリアルの翻訳、11回目(最終回)です。 前回までの訳を含めてチュートリアル[日本語訳]にまとめてありますのでごらんください。 多重化 チャネルを使うことで多重化処理のコードをほとんど書くことなく、複数の独立しているゴルーチンに対してデータ配信することができます。 今回のポイントとしては、サーバーへ送信するメッセージ内にあらかじめ返信用チャネルを含めておき、それを使ってクライアントに返信を行います。 実際のクライアント/サーバプログラムは多くのコードからできていますが、ここでは分かりやすいように単純化した例で説明します。 まずはじめにrequest型を定義し、そこに返信に使用するチ
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 実践Go言語(Effective Go)の翻訳、9回目です。 前回までの訳は実践Go言語[日本語訳]にまとめてあります。 メソッド ポインタ vs. 値 メソッドは、名前がつけられていればポインタとインタフェースを除くすべての型に定義することができます。(レシーバは構造体である必要はありません。) 以前、スライスの説明のところで書いたAppend関数を今度はスライスのメソッドとして定義してみます。これにはまず、メソッドと結びつけるために新たに名前付きの型を宣言し、メソッドにこの型のレシーバを定義します。 type ByteSlice []byte func (slice ByteSlic
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "bytes" バイトスライスを操作するための関数を実装しています。stringsパッケージの機能に類似しています。 パッケージファイル buffer.go bytes.go bytes_decl.go 定数 MinReadは、Buffer.ReadFromを呼び出したときにReadに渡されるスライスサイズの最小値です。rの内容を保持するために必要なサイズよりMinReadが大きいときは、ReadFromは管理するバッファを拡張しません。 const MinRead = 512 Compare関数 func Compare(a, b []byte) int Compareは
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 実践Go言語(Effective Go)の翻訳、14回目です。 完全な訳は実践Go言語[日本語訳]にまとめてあります。 ウェブサーバ Go言語のウェブサーバプログラムを作成して締めくくります。これは実際にはウェブ転送サーバの類です。Googleではhttp://chart.apis.google.comで、データをチャートやグラフに自動変換するサービスを提供していますが、このサービスはデータをクエリパラメータとしてURLに含めなくてはならないため対話的な使い方ができません。ここで紹介するプログラムは、文字を入力するとQRコード(テキストをエンコードした矩形マトリクス)を生成させるために先
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 実践Go言語(Effective Go)の翻訳、12回目です。 前回までの訳は実践Go言語[日本語訳]にまとめてあります。 並列性 通信による共有 並列プログラミングは大きなトピックではありますが、ここではGo言語の仕様の中で特徴的な部分だけを取り上げます。 一般的な環境における並列プログラミングは、共有変数にアクセスするためには適切な実装が厳密に求められるため扱いにくいものでした。Go言語では、共有変数をチャネル上で引き回し、実行中の異なるスレッドからは実際に同時アクセスさせないという今までとは異なる手法を推奨しています。あるタイミングで値にアクセスできるゴルーチンはひとつだけなので、
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "flag" コマンドラインのフラグ解析を実装しています。 使用方法: flag.String()、Bool()、Int()などを使用してフラグを定義します。下はサンプルです。 import "flag" var ip *int = flag.Int("flagname", 1234, "help message for flagname") 必要であれば、フラグをxxxVar()関数を使って変数にバインドできます。 var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help mes
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 このドキュメントはHow to Write Go Code(http://golang.org/doc/code.html)の翻訳です。 今回は文章が短かったので、分割せず一回で翻訳しました。 はじめに このドキュメントでは新しいパッケージの作成方法、およびテスト方法について説明します。インストール手順に従いGo言語のインストールが済んでいることが前提となっています。 既存のパッケージに変更を加えるか、もしくは新しいパッケージの作成に取り掛かる前には必ず、あなたが何をしようとしているのかを他の人達に知らせるためにメーリングリスト宛にメールを送るようにしてください。そうすることで重複による
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "math" mathパッケージは、基本的な定数と数学関数を提供します。 パッケージファイル acosh.go asin.go asin_decl.go asinh.go atan.go atan2.go atan2_decl.go atan_decl.go atanh.go bits.go cbrt.go const.go copysign.go erf.go exp.go exp2.go exp2_decl.go exp_decl.go exp_port.go expm1.go expm1_decl.go fabs.go fabs_decl.go fdim.go fdi
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに このドキュメントでは新しいパッケージの作成方法、およびテスト方法について説明します。インストール手順に従いGo言語のインストールが済んでいることが前提となっています。 既存のパッケージに変更を加えるか、もしくは新しいパッケージの作成に取り掛かる前には必ず、あなたが何をしようとしているのかを他の人達に知らせるためにメーリングリスト宛にメールを送るようにしてください。そうすることで重複による無駄な労力が減らせるとともに、コードを書く前に仕様に関する議論をすることができます。 コミュニティ リソース リアルタイムサポートは、Freenode IRCサーバの#go-nutsチャネルにて
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "fmt" fmtパッケージは、フォーマットI/Oを実装しており、C言語のprintfおよびscanfと似た関数を持ちます。フォーマットの「書式」はC言語から派生していますが、より単純化されています。 【書式化】 書式: 汎用: %v デフォルトフォーマットを適用した値 構造体を出力する際、+フラグ(%+v)を加えるとフィールド名が表示される %#v この値をGo言語の構文で表現する %T この値の型をGo言語の構文で表現する 論理値: %t 単語、trueまたはfalse 整数: %b 基数2 %c 対応するUnicodeコードポイントによって表される文字 %d 基数10
このドキュメントはhttp://golang.org/doc/install/sourceの翻訳です。 はじめに C言語ツールのインストール(必要に応じて) Mercurialのインストール(必要に応じて) リポジトリからの取得 Go言語のインストール インストール後の確認 コミュニティリソース 最新リリースを保つ オプション環境変数 はじめに Go言語はオープンソースプロジェクトで、BSD-style licenseで提供されています。このドキュメントでは、ソースの取得、ビルド、実行方法について説明します。 ほとんどのユーザにはこの作業は必要なく、代わりにインストールページで説明しているもっと手軽なコンパイル済みのバイナリパッケージをインストールしてください。しかし、それらコンパイル済みパッケージの開発を支援したい場合は読み続けてください。 Go言語の公式コンパリラツール群は2種類ありま
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "regexp" regexpパッケージは、シンプルな正規表現ライブラリを実装しています。 対応している正規表現の構文: regexp: concatenation { '|' concatenation } concatenation: { closure } closure: term [ '*' | '+' | '?' ] term: '^' '$' '.' character '[' [ '^' ] { character-ranges } ']' '(' regexp ')' character-range: character [ '-' character ]
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "reflect" reflectパッケージは、どんな型のオブジェクトでもプログラムから操作可能なランタイムリフレクションを実装しています。典型的な使い方としては、interface{}から静的な型の値を取得したり、Typeof関数を呼び出して動的な型情報を得たりします。このTypeof関数は、インタフェース型であるType型のオブジェクトを返します。これは構造体へのポインタ*StructTypeや、*IntTypeなどのように実際の型についての詳細を表しており、これを型スイッチや、型アサーションを使って調べます。 NewValue関数を呼び出すとランタイムデータを表すVa
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 import "net" netパッケージは、TCP/IP、UDP、ドメイン名解決、UNIXドメインソケットを含むUnixネットワークソケットへのポータブルインタフェースを提供します。 パッケージファイル dial.go dnsclient.go dnsconfig.go dnsmsg.go fd.go fd_darwin.go fd_freebsd.go fd_linux.go fd_nacl.go fd_windows.go hosts.go ip.go iprawsock.go ipsock.go net.go newpollserver.go parse.go pipe.go p
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。
起源 このプロジェクトの目標は? ここ10年以上、メジャーなシステム言語は誕生しておりませんが、その間にコンピュータの世界は大きく変化しています。この変化には、次の傾向が見受けられます。 コンピュータ自身は非常に早くなりましたが、ソフトウエア開発は遅いままです。 今日のソフトウェア開発にとって依存関係を管理することはとても重要ですが、C言語で使われている「ヘッダファイル」では、依存関係を正しく解析したり、高速なコンパイルを行うことはできません。 JavaやC++のような扱いにくい型システムに対する反発が大きくなりつつあり、これがPythonやJavaScriptといった動的な型言語を後押ししています。 基本的なコンセプトのうち、ガベージコレクションや並列処理などいくつかは、人気のあるシステム言語においてもほとんどサポートされていません。 マルチコアコンピュータの出現は、心配事と混乱を生み出
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 始めに このcodelabで説明する範囲: ロードおよびセーブメソッドを持つデータ構造の作成 httpパッケージを使用してWEBアプリケーションを構築 templateパッケージを使用してHTMLテンプレートを処理 regexpパッケージを使用してユーザ入力をチェック クロージャの使用 必要な知識: プログラミング経験 基本的なWEBテクノロジー(HTTP、HTML)への理解 UNIXコマンドの知識 開始準備 現時点でGoを実行させるためには、Linux、OS X、FreeBSDのいずれかのマシンが必要です。これらの何れも利用できなければ、Linux仮想マシン(VirtualBoxまたは
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに このGo言語のメモリモデルでは、あるゴルーチンによって変数へ書き込まれた値を、他のゴルーチンから読み込む際に、書き込まれた値を参照できることを保証するための条件を規定します。 前事象 ひとつのゴルーチン内でのメモリへの読み書きは、プログラムで指定した実行順と同じように振舞わなくてはなりません。つまり、コンパイラとプロセッサが、ゴルーチン内の読み書きの順番を入れ替えられるのは、入れ替えによって言語仕様で定められたゴルーチンの振舞いが変更されないときだけです。この順番入れ替えの影響で、あるゴルーチン内では守られていた実行順が、他のゴルーチンからは違って見えることがあります。たとえば
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 Go言語は、システムプログラミング言語であり、目標は、C++のような多目的システム言語です。このドキュメントは、熟練したC++プログラマ向けに書かれたもので、GoとC++との違いについて説明します。両言語の類似点については、このドキュメントの範囲外です。 より一般的なGo言語の手引きは、チュートリアルまたは実践Go言語をご覧ください。 Go言語の詳細な解説は、Go言語仕様をご覧ください。 コンセプトの違い Go言語には、コンストラクタやデストラクタを持つようなクラスはありません。Go言語では、クラスメソッド、継承によるクラスの階層、仮想関数が無い代わりとして、あとで解説するインタフェース
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 Goロードマップ このページでは、Goチームにより開発・検討中の機能およびアイデアをリストしています。このリストは作業の継続とともに更新していきます。 このロードマップは、golang-nutsメーリングリスト上で検討されなければなりません。 言語のロードマップ これは、言語に対して検討されている変更箇所のリストです。ここでリストされていても、変更が正式に受諾されることを保証するものではありません。 変数宣言をまたいだときのgotoの制約を修正する予定である。 バリアント型。複数の型のセットを結合(union)し、ひとつの型として定義する方法。 ジェネリック。これは活発に議論されている話
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに Goは新しい言語です。既存の言語からアイデアを取り入れてはいますが、他の言語にはない機能をもっているため、実際に記述されたGoのプログラムは、他の類似した言語とはだいぶ異なるものになります。C++またはJavaプログラムをGo言語へ直接変換しても、あまりうまくは行きません。JavaのプログラムはあくまでJavaで書かれており、Go言語で書かれてはいないからです。一方で、Go側の視点からこの問題を考えると、変換に成功したとしても、全く違うプログラムができてしまうことになります。言い換えると、Go言語を使いこなすには、Go言語の機能や文法を理解することが重要です。おなじく、Go言語
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 実践Go言語(Effective Go)の翻訳、5回目です。 前回までの訳は実践Go言語[日本語訳]にまとめてあります。 制御構造 Go言語の制御構造は、C言語の制御構造と似通っていますが、大きく異なる点があります。ループにはdoやwhileはなく、若干改良されたforループだけです。switchはより柔軟になっています。ifとswitchはオプションとしてforのように初期化ステートメントを受け入れます。また、新しい制御構造として、型switch、および多重通信を取り扱えるselectがあります。文法も若干異なっており、丸括弧()は不要ですが、本体部は波括弧で区切られていなければなりま
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 Googleは2009年11月10日(米国時間)、オープンソースのプログラミング言語「Go」を発表しました。 Go言語は、Linux、Mac、Native Clientで動作する開発言語で、Android携帯上でも動作します。 まだ発表されたばかりなのでこれからの動向が注目されています。 特徴はGoogleによると・・ シンプルな言語である。 コンパイル・実行速度が早い。 安全性が高い。 同期処理が容易に行える。 なにより楽しい。 オープンソースである。 これらについてもう少し掘り下げてみてみましょう。 シンプルな言語である 以下がおなじみのHelloWorldのコードです。 packa
†gccはcgo(未訳)を使用する場合のみ必要です。 Go言語ツールのダウンロード Go project’s downloads pageから使用しているオペレーティングシステムおよびCPUのアーキテクチャに合ったバイナリを選んでください。 公式で配布されているバイナリは、オペレーティングシステムではFreeBSD、Linux、Mac OS X (Snow Leopard/Lion)、Windowsです。CPUアーキテクチャは32-bit(386)と64-bit(amd64)のx86です。 使用しているオペレーティングシステムおよびCPUアーキテクチャとの組み合わせのバイナリが配布されていないときは、プログラムソースからインストールするか、gcの代わりにgccgoをインストールしてみてください。 Go言語ツールのインストール 配布されているGo言語のバイナリは、/usr/local/go(
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに この文書は、プログラミング言語Goのリファレンスマニュアルです。その他の情報、文書はhttp://golang.orgを参照ください。 Go言語は汎用言語ですが、システムプログラミングを念頭に設計されています。この言語は、強い型付け、ガーベージコレクション、並列処理をサポートする機能を持ちます。プログラムはパッケージという単位で構成され、依存関係は効率的に管理されます。今現在は、従来からあるコンパイル/リンクモデルによる実行バイナリ生成方式を採っています。 Go言語の文法は、コンパクトかつ規則的で、IDE(統合開発環境)のような自動ツールにとって解析しやすい言語となっています。
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 チュートリアルの翻訳、10回目です。 前回までの訳はチュートリアル[日本語訳]にまとめてありますのでごらんください。 素数 やっと、プロセスと平行通信プログラミングのところまで到達しました。 これは重要なセクションであり、このトピックにはある程度の知識が必要です。 「素数の篩(ふるい)」と呼ばれる古くから存在する素数を取得するプログラムがあります。 (エラトステネスの篩はここで扱うアルゴリズムより効率的ではありますが、このセクションでは並列性を重要視しています) このアルゴリズムでは、まず2以上の自然数を順番に並べて数列を作成します。そこから素数をひとつづ取り出し、その素数の倍数すべてを
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 チュートリアルの翻訳、3回目です。 前回までの訳はチュートリアル[日本語訳]にまとめてありますのでごらんください。 Goの型について Go言語も、他の言語と同じようにintやfloat型といったサイズがシステムによって異なる型を持ってます。 サイズを明示したint8やfloat64型もあり、加えてuint, uint32といった符号なし整数型もあります。これらはすべて異なる型であり、たとえint型が32ビットのシステム上であっても、intとint32は同じ型ではありません。 一方、byte型はuint8型の同義語です。(byte型はstring型の要素) string型もまた言語に組み込
次のページ
このページを最初にブックマークしてみませんか?
『Google's Go Guide - プログラミング言語Goの情報サイト』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く