[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 22:44 / Filesize : 191 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Go part2



1 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:23:56 ]
The Go Programming Language
ttp://golang.org/

152 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 14:04:29 ]
そのためのclosed

153 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 14:26:33 ]
>>152
closedを見たときにはまだ閉じられてないけど、
その直後にreceiveしたときには既に閉じられているということが起こりうるんだよ。

154 名前:デフォルトの名無しさん [2009/11/15(日) 14:30:22 ]
>>150
前スレで外出

155 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 14:34:34 ]
受信した後にさらにclosedを見ればいいんじゃね

156 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 15:00:16 ]
>>153
というよりreceiveしないとclosedかどうかわからんということだろう。
feof()と同じ感じじゃないかな。

Close and closed

For a channel c, the predefined function close(c) marks the channel as
unable to accept more values through a send operation. After any
previously sent values have been received, receive operations will
return the zero value for the channel's type. After at least one such
zero value has been received, closed(c) returns true.

157 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 15:09:16 ]
>>156
ああ、それそういう意味なのか。ちょっと誤読してた

x, ok := <-ch;
とすれば読めたかどうかがブーリアンでとれるみたいだが、
non-blockingになってしまってなんの意味もない

158 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 19:27:50 ]
Windows用コンパイラのバイナリ提供は明日ですか?

159 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 20:29:23 ]
コンパイラを移植するのは楽だろうな。
ライブラリの対応がめんどうなだけで

160 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:20:58 ]
他パッケージのクラスにかってにメソッド追加とかはできないのか



161 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:44:10 ]
>>160
出来ない
そもそもクラスはない

162 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:46:22 ]
とするとOOPはどうやるつもりなんだろう…

163 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:51:36 ]
こんなのどうだろ

import "fmt"

type R struct {
  value int ;
  eos bool;
}

func genInt(start int, stop int, dest chan R) {
  for i := start; i < stop; i++ {
    dest <- R{i, false};
  }
  dest <- R{0, true};
}

func main() {
  ch := make(chan R);
  go genInt(1, 20, ch);
  for r := <- ch; !r.eos; r = <- ch {
    fmt.Printf("%d\n", r.value);
  }
}

164 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:55:52 ]
字面に慣れたら生産性上がりそう?

165 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:02:49 ]
OOP的な仕組みはあるけど用語がわからん

166 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:04:23 ]
ファイル分割するときはどうするの?
package hoge
とかして、使いたいところで
import "hoge"
ってやればいいだけ?

167 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:06:38 ]
>>163
そのコード、OOP関係ない。
従来からあるただのCの手続きコードと同じ。

168 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:10:18 ]
>>162
実装を継承することは出来ない
インターフェイスは共有できる

169 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:15:21 ]
>>167
ごめん端折りすぎた

>>163は上でやってたGoroutineの終了を
チャンネルの向こうにいる受信側にどう通知するかって話

170 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:20:17 ]
>>168
実装の継承、出来ますよ
kwskは仕様書のSelectorの項目に書いてあったはず

型情報の継承は出来ませんが、
かわりにinterfaceを使えばいいことなので、OOPに求められる要素は全て揃っていると思われます



171 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:24:30 ]
昨日うpしたOOPの機能を使った例:
seiga.nicovideo.jp/bbs/sg351/1-

もしよかったらみんなのデスクトップも見せてね!

172 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:27:11 ]
>>169
OOPなのができるとは、計算終了の通知をどうするかじゃなくて、その場合は相互のmessagingを言語としてはどう表現するかですよ。
計算終了ならなにも並列じゃなくwaitでいいわけでして。
OOPは並列計算とかlisp的な考え方とはまったく関係ないんでこの際OOP概念を勉強してみてはどうですか。

173 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:28:17 ]
Kenがついにスペルミス直したぞ
hg log -r3956 -p


174 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:39:46 ]
>>163
closed()かrangeを使えばいいんでわ

import "fmt"

func genInt(start int, stop int) chan int {
  c := make(chan int);
  go func() {
    for i := start; i < stop; i++ {
      c <- i;
    }
    close(c);
  }();
  return c;
}

func main() {
  c := genInt(1, 20);
  for {
    i := <-c;
    if closed(c) {
      break;
    }
    fmt.Printf("%d\n", i);
  }
  // もしくわ
  for i := range genInt(1, 20) {
    fmt.Printf("%d\n", i);
  }
}

175 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:51:11 ]
>>170
これ?
golang.org/doc/go_spec.html#Selectors

176 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:56:45 ]
>>174
ああそうか、>>123のように

1. closedか確認する
2. 1でclosedでなければチャンネルから読む

だと、1と2の間にclosedされた場合に問題が起きるけど、

1. ひとつ読む
2. closedか確認して閉じてたらもうrecvせずに抜ける

ならclosedされたチャンネルから0を読み込むようなことが起こらないわけだ
>>124,125他で指摘されてたことがようやく飲み込めた。どうもありがとう

177 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:04:39 ]
OOPすら関係ねーじゃん。
おまえが構造化プログラムを一度も書いたことも無いってのが露見しただけw

178 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:15:50 ]
>>177
>>163>>162氏へのレスになっていると勘違いされているのでは?
>>176氏の文脈は>>107から続いているもので、OOPの話題とは関係ないように見えますが(参照:>>169)

179 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:16:06 ]
OO=クラスだと思ってるアホが暴れてますね

180 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:18:28 ]
>>176
goを使うには修行が足らん
まずはCからやれ



181 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:40:27 ]
ニコ動久しぶりに見たけど見るまでの手続き色々面倒なのに変わってるね

182 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:51:10 ]
ごめん。>>111 は普通に出来た。

183 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:59:19 ]
GC とクロージャがあって、 OOP が出来て、ネイティブコンパイルできて
コンパイル速度が暴速の C だと思えば割と良いもんじゃん。

184 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:05:00 ]
並列処理が遅くて看板に偽り大有りです
食品なら食品偽装レベル
電化製品なら製造物責任法で書類送検レベルの大問題です

185 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:08:49 ]
なんで for each にしなかったんだろう

186 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:09:06 ]
cythonよりpsycoの方が速いんか

187 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:57:50 ]
クラスが無いからC++系ライブラリをそのまま流用出来ないんですけど

188 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 01:15:23 ]
逆に考えるんだ。クラスが無いから恥ずかしくない。
クラスがあるのに流用出来なかったら最悪だろ。

189 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 01:19:25 ]
斬新な発想の転換だな。

190 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 04:09:22 ]
やっぱ派生クラス100個あったらswitch文とかで100個 new class CXXX(); とかしないとダメなのかな。
簡単に言うとコンストラクタをオーバーライドしたい。



191 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 06:42:02 ]
MacOSX で試してるんだが、UniversalBinaryは吐けないのかな?

192 名前:デフォルトの名無しさん [2009/11/16(月) 07:48:37 ]
「Emacsは馬鹿避けのためにある」ってホント名言だったなw



193 名前:デフォルトの名無しさん [2009/11/16(月) 07:54:49 ]
隔離ソフトwww

194 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 10:26:52 ]
visualstudio系はともかくなぜかeclipseと自己同一化してるヤツはなんかひどいの多いな
「車に乗ると性格が変わるヤツ」というか、IDEのパワーと自分のパワーをごっちゃにして威張るw
「新言語を評価する」の類のイレギュラーな事象に対応可能にしておくためにIDE依存度をあまり上げすぎないようにするくらいの知見もなく、
IDEのオペレーション自体は「技術」の範疇じゃなくて、入れれば誰でも使えるアプリの一つでしかないのに


195 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:14:09 ]
>>191
たぶんGoogle内部的にPPC(笑)だと思われ
10.6的な意味で

でもそれとは別にGoがPPC環境でどれくらいの早さで動くかは興味ある
バックエンドgccのgccgoならその筋の人がいろいろいじればなんとかなりそうだったり?

196 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 13:19:00 ]
週末暴れてた人はアク禁喰らったのか?

197 名前:デフォルトの名無しさん [2009/11/16(月) 13:25:29 ]
visualstudioとeclipseを区別す理由がいまいち不明だな

198 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 14:52:17 ]
>>194
セルシオとかポルシェとか運転したことあってそういうこといってるの?
おれは幾人かの友達が持ってるから運転させてもらったことあるけど。
それと同じで、君は偉そうなことをいっちょまえにいうけどそれぞれのIDEを使いこなせるようになってるわけでもないでしょ。

199 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:08:38 ]
自分のクルマじゃないトコがかわいくてワロタw


200 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:17:39 ]
いいね

package main
import "fmt"

func main() {
a := 1;
f := func() int { return a };
fmt.Println( f() );
a = 2;
fmt.Println( f() );
}




201 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:50:44 ]
>>200
最近の言語なら普通じゃない?

202 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:51:24 ]
>>173
あれはジョークだと思ってたから(間違えるはずがない)
直したことに違和感がw

203 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:56:58 ]
>>202
さらなるジョーク

204 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:29:36 ]
まるで静的型付けの JavaScript みたいだな
これが普及すると嬉しいな

2,000 行未満の小さなプログラムを書くには
もってこいの言語だと思う

205 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:38:18 ]
ネイティブ言語だから実際はあまり普及しないよ。
それにどちらかといえばCと同じく関数型言語の延長で、lispに制御構造をくっつけたような設計だし、並列用途でこの言語をベースとし亜種の言語は出てくるんじゃないか?
組み込み用の小型プログラムやIOのところとかバリバリネイティブなら必要なんだろうな。
x86(x64)は既に大規模だしide(gui)あるし、java,dotnetのvmで会話するって感じなんだろう。
つまりこれからはx86じゃなくてARMなのかなって思う。googleがwebのプラットフォームをどこまで考えてるかによる。

206 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:40:52 ]
どこから突っ込んでいいか分からんなw

207 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:43:41 ]
>>206
>>205に対して?

208 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:47:57 ]
うん

209 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:50:01 ]
>>195
x86 x64 のユニバーサルは吐きたいと思うのよ

GUIをどうするか悩むよりは、Javaから呼び出して使いたいなぁ・・・

210 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 20:59:04 ]
Javaみたいに活躍の場を見つけるまでが大変かもな
Javaも最初の発表とは全然違うエンタープライズ分野に居場所を見つけて定着したし




211 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:03:52 ]
ほんとにそうだね

Cの置き換えとか狙ってたら
中の人が中の人だし面白いんだけどなー

212 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:04:30 ]
このスレを見ている少年少女の為に一応正しておくけど、
Lisp には制御構造は沢山あるからね。もし興味があったら
ここら辺を読んでみてください。

www.lispworks.com/documentation/HyperSpec/Body/c_data_a.htm
www.lispworks.com/documentation/HyperSpec/Body/c_iterat.htm
www.cs.cmu.edu/Groups/AI/html/cltl/clm/node76.html
www.cs.cmu.edu/Groups/AI/html/cltl/clm/node235.html

Lisp は Go とは傾向の全然違う言語なのであしからず。

213 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:07:37 ]
evalがあるのがふしぎ

214 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:08:20 ]
>>212
そりゃマクロでいくらでも作れる<lisp

215 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:15:39 ]
マクロでどうとかじゃなく、規格上の話だよ

216 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:21:57 ]
Common LispとりあげてLispには制御構文がたくさんあるとか言われても

217 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:23:15 ]
>>210
Java は最初から仕事で使える事を強く意識して作られていたから
途中色々あったけど、自ずと道が開けてきた感がある

218 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:27:25 ]
>>216
ちゃんと理由を言わないと誰も賛同しないよ?

219 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:29:37 ]
それと、C は関数型言語じゃないから気をつけて

220 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:30:18 ]
やっぱ、google凄いなぁ。反応が沢山ある。



221 名前:214 mailto:sage [2009/11/16(月) 21:35:17 ]
>>216
common lisp の制御構造って、実際的にはマクロで記述されているんじゃないのかな。lisp のマクロって強力だからね。
common lisp を取り上げてlispには制御構文がたくさんあるといわれてもねえ。

222 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:36:03 ]
無理するなよw

223 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:43:56 ]
>>214=>>205か?
正直
>それにどちらかといえばCと同じく関数型言語の延長で
が面白すぎて後は目が滑ってしまったw

224 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:44:00 ]
ここで見栄はっても仕方ないのに

225 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:44:51 ]
>>221
Lispは史上最強の言語だ。知らないなら勉強する価値はあるよ
ただ、一生仕事で使う事はないだろうからどうでもいいが

そんなことより、Goは規格化しないのかなISO標準とかに
PythonやRubyと違って明らかにGoogle社の所有物な言語って怖くもある


226 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:53:03 ]
>>225
オープンソースだから所有に関してはRubyとかと大差ないんじゃないか

227 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:00:02 ]
>>223
ちゃいます。ちっぽけなlispインタープリタなら読んだことあります。

228 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:04:20 ]
>>227
>>212 にはマクロで実装される物とそうでない物がきちんと分類されてるよ

229 名前:214, 227 mailto:sage [2009/11/16(月) 22:23:41 ]
>>228
んー、cond もマクロかいな。前に読んだのは c で書いてあったなあ。
いやね、lisp のプリミティブな制御構造って少ないと思ってるんですよ。ただそれだけ。

230 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:25:27 ]
Ubuntuのリポジトリに入ったら本気出す



231 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:29:32 ]
>>229
実際は色々ある事が分かったでしょ。
そもそもマクロで実装されていたところで何の問題も無い訳だし、
おかしな事は何も無い。

232 名前:229 mailto:sage [2009/11/16(月) 22:44:33 ]
>>231
まあ、そうですね。

233 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:45:01 ]
NTRも悪くないと思う

234 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:48:00 ]
ライブラリをがんばって欲しいなぁ
リッチな標準ライブラリがあるならCでも構わない

235 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:52:51 ]
そういう意味ではやっぱり GUI かな
C でオブジェクト指向するのが嫌で VALA とか作っちゃう様な事が必要なくなれば
嬉しい人はそれなりに多そうだ

236 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 23:47:36 ]
>>220
Googleの名前とあの製作陣を見たら、やはり心ときめく

237 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 23:52:44 ]
ちょっと親しみ易くした Limbo なんだよな

238 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:00:27 ]
こんな仕様じゃ大規模なものが作れないという苦情に対して
「設計が悪いから、バベルの塔を作る羽目になってるだけじゃないの?」と
ロブ・パイクは答えるんだろうな。
結局、BSDソケット や X をいつまで前提してるんですかという話になる。
Goは Plan9 の入口にすぎんのであって、後者が布教されれば本懐。
Go自体が多機能のてんこ盛りになる「進化」は望んでいないだろう。

239 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:01:02 ]
>>237
ja.wikipedia.org/wiki/Limbo

名前だけは知ってたけど
特徴を見るとGoといっしょだね
中の人もかぶってるし

240 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:10:37 ]
Limboオセェし糞言語だったろw



241 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:25:42 ]
なにかが足りないと思ったらacmeだったか

242 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:08:00 ]
>>240
Limboっての自体知らなかったけど遅いの?
知ってるだけ偉いと思った。

243 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:18:17 ]
LimboはInferno上で使うのね。調べたら比較があった。
redgenes.com/PerfJavavsC.html

単純なコードは(JITありでも)倍ぐらい遅いけど、ネット系はやや速いとなってる。
まあでもJIT系はオーバーヘッドあるから、ベンチ以上に遅く感じることはあるかもね。

244 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:42:34 ]
Microsoft Visual StudioがVisual Goを開発しないと初心者は使わないよ^^;
文系の授業でもあるようなC言語のプログラミングに置き換わるなんてまず無理

245 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:45:23 ]
>>244
んなことない
そこまでMS系統でもないだろ今の時代

GoでAndroidアプリを作れるようにするという最終兵器がGoogleにはあるからな....
Objective-C市場がiPhoneがどれだけのびたかを考えるとあり得るシナリオだと思う

246 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:06:35 ]
自演にしか見えない

247 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:07:28 ]
見る目ないな

248 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:21:30 ]
今のGoの日本語のまともな解説サイトを作ったら結構広告料貰えるんじゃね
関連書籍とかまだまだでしょ

249 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:52:02 ]
golang.jpがうさんくさい件

翻訳はもうやってる人がいる
-users.jpはまだだな

250 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 03:56:14 ]
クラスじゃなくてもいいけど、
プロパティに当たる物が無いのはちょっと・・・



251 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 04:21:22 ]
いちお貼っとくか
winでmakeしてみたい人はここ
code.google.com/r/hectorchu-go-windows/
GOOS は mingw
ただ thread まわりとかまだ移植されてなさそう

252 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 04:52:16 ]
   ∧∧
  (  ・ω・) 完全になったら起こしてくれ
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄

  <⌒/ヽ-、___
/<_/____/






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<191KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef