いろいろあるけど、全部の行にセミコロンはいらないよ。と理解。
次!
2010年2月27日土曜日
hello.goの解説
チュートリアルのhello.goの下になんだか書いてありました。
* fmtって言うパッケージを読むとPrintが使えるんだぜ
* 関数は func で始めるんだぜ
* 文字列はUTF-8なんだぜ
* コメントはC++と一緒なんだぜ
* Printはあとでみっちり解説するから覚悟しとけ
って書いてあると思います。
どれもこれも見たら明らかですね。
一見当たり前のことを当たり前に解説するって言うところを押さえるあたり、
すごくよくわかって書いてるんだなーとそこは安心感。
ぼちぼちいきますよ。
Every Go source file declares, using a package statement, which package it's part of. It may also import other packages to use their facilities. This program imports the package fmt to gain access to our old, now capitalized and package-qualified, friend, fmt.Printf.
Functions are introduced with the func keyword. The main package's main function is where the program starts running (after any initialization).
String constants can contain Unicode characters, encoded in UTF-8. (In fact, Go source files are defined to be encoded in UTF-8.)
The comment convention is the same as in C++:
/* ... */
// ...
Later we'll have much more to say about printing.
* fmtって言うパッケージを読むとPrintが使えるんだぜ
* 関数は func で始めるんだぜ
* 文字列はUTF-8なんだぜ
* コメントはC++と一緒なんだぜ
* Printはあとでみっちり解説するから覚悟しとけ
って書いてあると思います。
どれもこれも見たら明らかですね。
一見当たり前のことを当たり前に解説するって言うところを押さえるあたり、
すごくよくわかって書いてるんだなーとそこは安心感。
ぼちぼちいきますよ。
hello.go
こんばんわ。
ようやくインストール/コンパイルしたGoを動かしてみることにしましょう。
最初で何にもわかりませんので、とりあえずはお約束のhellow worldでもやってみましょう。
チュートリアルの最初のページにこんな例題が出ています。
これを hello.goで保存して
でコンパイルとリンク。
エラーがあるときだけエラーが出ます。実行すると
はい、動きました。
これだけで何かわかる訳ではないですし
いろんな方が分析されていますがそういうのは基本的に他に譲ります。
個人的にはpythonとかC++ぽいC言語なのかな、と思いました。
Printの先頭が大文字なのはちょっと気持ち悪いですけど
まあそんなもんでしょう。
コンパイルが速いのはうれしいです。
むかし8bitのマイコン(パソコンの古代名)にCのコンパイラを入れて
わくわくhello world入力して、翻訳だと信じて疑わなかったコンパイルをかけたら
あら不思議、30分ぐらいディスクアクセスしっぱなしで
泣きそうになったことをしみじみと思い出しました。
コンパイラは15000円ぐらい出して買ったんだと思います。
30分は大げさかもしれませんが。。よく覚えていません。
結局BASICに戻った懐かしいあの頃。
お約束でチュートリアルでもやりましょうかね。
ようやくインストール/コンパイルしたGoを動かしてみることにしましょう。
最初で何にもわかりませんので、とりあえずはお約束のhellow worldでもやってみましょう。
チュートリアルの最初のページにこんな例題が出ています。
package main
import fmt "fmt"
func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n")
}
これを hello.goで保存して
$ 8g hello.go
$ 8l hello.8
でコンパイルとリンク。
エラーがあるときだけエラーが出ます。実行すると
$ ./8.out
Hello, world; or Καλημέρα κόσμε; or こんにちは 世界
はい、動きました。
これだけで何かわかる訳ではないですし
いろんな方が分析されていますがそういうのは基本的に他に譲ります。
個人的にはpythonとかC++ぽいC言語なのかな、と思いました。
Printの先頭が大文字なのはちょっと気持ち悪いですけど
まあそんなもんでしょう。
コンパイルが速いのはうれしいです。
むかし8bitのマイコン(パソコンの古代名)にCのコンパイラを入れて
わくわくhello world入力して、翻訳だと信じて疑わなかったコンパイルをかけたら
あら不思議、30分ぐらいディスクアクセスしっぱなしで
泣きそうになったことをしみじみと思い出しました。
コンパイラは15000円ぐらい出して買ったんだと思います。
30分は大げさかもしれませんが。。よく覚えていません。
結局BASICに戻った懐かしいあの頃。
お約束でチュートリアルでもやりましょうかね。
Google goをインストール
こんばんわ。
Googleがこないだジョリジョリ言ってたGoogle-goをインストールからやりました。
11月に発表されてから、主にpythonの開発者がなだれこんだり、
GCCがサポートするって言ったり、
当初発表した文法をこそっと変更したり、
なんだかいろいろあったのが先月ぐらいようやく落ち着いたようです。
それでそろそろあそんでみようかな、と。
インストールはインストール方法に書かれている通り、
Mercurialでダウンロードしてgccでコンパイルするだけです。
理想的です。
パスの設定とかはまあお約束通りやってください。
通常どおりコンパイルして、勝手にテストが走って、終了なのですが
少なくともMacOSXではテストでエラーが出ます。
対処方法はGoを試す - fukuitの日記さんとかを参考に
$GOROOT/src/pkg/Makefileを修正します。
NOTEST=\
のとこにhttpとnetを追加して
NOTEST=\
debug/proc\
go/ast\
go/doc\
go/token\
hash\
image\
image/jpeg\
rand\
runtime\
syscall\
testing/iotest\
xgb\
http\
net\
みたいにすればOkです。
コンパイルすると
$ ./all.bash
全部略
--- cd ../test
0 known bugs; 0 unexpected bugs
みたいに出たら終了です。
$GOBIN、通常は~/binに8a 8c 8l 8g gofmt などの実行ファイルができます。
早速もいちど実行しようとおもったけど時間の都合で今日はここまで。
Googleがこないだジョリジョリ言ってたGoogle-goをインストールからやりました。
11月に発表されてから、主にpythonの開発者がなだれこんだり、
GCCがサポートするって言ったり、
当初発表した文法をこそっと変更したり、
なんだかいろいろあったのが先月ぐらいようやく落ち着いたようです。
それでそろそろあそんでみようかな、と。
インストールはインストール方法に書かれている通り、
Mercurialでダウンロードしてgccでコンパイルするだけです。
理想的です。
パスの設定とかはまあお約束通りやってください。
通常どおりコンパイルして、勝手にテストが走って、終了なのですが
少なくともMacOSXではテストでエラーが出ます。
対処方法はGoを試す - fukuitの日記さんとかを参考に
$GOROOT/src/pkg/Makefileを修正します。
NOTEST=\
のとこにhttpとnetを追加して
NOTEST=\
debug/proc\
go/ast\
go/doc\
go/token\
hash\
image\
image/jpeg\
rand\
runtime\
syscall\
testing/iotest\
xgb\
http\
net\
みたいにすればOkです。
コンパイルすると
$ ./all.bash
全部略
--- cd ../test
0 known bugs; 0 unexpected bugs
みたいに出たら終了です。
$GOBIN、通常は~/binに8a 8c 8l 8g gofmt などの実行ファイルができます。
早速もいちど実行しようとおもったけど時間の都合で今日はここまで。
登録:
投稿 (Atom)