Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
探検
Go language part 1
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2013/10/10(木) 12:04:51.78405デフォルトの名無しさん
2014/12/10(水) 22:38:54.56ID:hVfFOG57 面倒くさいけど、こんな風にするみたい
ptr := m["Bell Labs"]
ptr.Lat = float64(1)
m["Bell Labs"] = ptr
Issue 3117: cannot assign to a field of a map element directly: m["foo"].f = x
https://code.google.com/p/go/issues/detail?id=3117
ptr := m["Bell Labs"]
ptr.Lat = float64(1)
m["Bell Labs"] = ptr
Issue 3117: cannot assign to a field of a map element directly: m["foo"].f = x
https://code.google.com/p/go/issues/detail?id=3117
406デフォルトの名無しさん
2014/12/10(水) 22:47:12.63ID:3ZzrTcyc >>405
私の認識や手順が違うとかじゃなく、ほんとにそのままでは出来ないんですね
でもwork-aroundって書いてるからそのうち直す的な感じなのかな
2年前ってのがあれですがw
ともあれ、ありがとうございます。
私の認識や手順が違うとかじゃなく、ほんとにそのままでは出来ないんですね
でもwork-aroundって書いてるからそのうち直す的な感じなのかな
2年前ってのがあれですがw
ともあれ、ありがとうございます。
407デフォルトの名無しさん
2014/12/11(木) 15:31:26.79ID:HIgp7OEe go listってやっても
can't load package: package .: no buildable Go source files in /home/kido
ってなります
gocodeをgo getでインストールしてあるのですがどうしてgo listで表示されないんですか?
can't load package: package .: no buildable Go source files in /home/kido
ってなります
gocodeをgo getでインストールしてあるのですがどうしてgo listで表示されないんですか?
408デフォルトの名無しさん
2014/12/11(木) 15:49:25.67ID:SBn2bhiW409デフォルトの名無しさん
2014/12/13(土) 12:01:31.39ID:BVSGhnq7 >>404
structは値型だからね
m["unko"]はmに格納されてるVertexのコピーが返される
これに修正加えても反映されないよーっていうエラー
だからそう言う書き方がしたいなら
map[string]*Vertex
って宣言するといい
structは値型だからね
m["unko"]はmに格納されてるVertexのコピーが返される
これに修正加えても反映されないよーっていうエラー
だからそう言う書き方がしたいなら
map[string]*Vertex
って宣言するといい
2014/12/13(土) 12:12:47.84ID:imyzRhSY
>>409
var m map[string]*Vertex
func main() {
m = make(map[string]*Vertex)
m["Bell Labs"] = &Vertex{
40.68433, -74.39967,
}
m["Bell Labs"].Lat = float64(1)
fmt.Println(m["Bell Labs"])
}
これで行けました。ありがとうございます!
便乗で質問なのですが、
var m map[string]*Vertex
mapに関しては個人的に全部これでいいんじゃないかなと思ってしまうのですが
リファレンス型(ポインタ型?)を使うデメリットってあるんでしょうか。
自分で思いつくのは、
値 リファレンス
メリット ? アドレス情報にしかメモリを使わない
デメリット コピー分メモリを食う ソースがやや煩雑に
とう感じなのですが…
var m map[string]*Vertex
func main() {
m = make(map[string]*Vertex)
m["Bell Labs"] = &Vertex{
40.68433, -74.39967,
}
m["Bell Labs"].Lat = float64(1)
fmt.Println(m["Bell Labs"])
}
これで行けました。ありがとうございます!
便乗で質問なのですが、
var m map[string]*Vertex
mapに関しては個人的に全部これでいいんじゃないかなと思ってしまうのですが
リファレンス型(ポインタ型?)を使うデメリットってあるんでしょうか。
自分で思いつくのは、
値 リファレンス
メリット ? アドレス情報にしかメモリを使わない
デメリット コピー分メモリを食う ソースがやや煩雑に
とう感じなのですが…
2014/12/13(土) 13:29:33.21ID:WvyZJyoU
primitive 型の時は困るな…
m = make(map[string]*int)
m["Bell Labs"] = &1
とかできないし…
m = make(map[string]*int)
x := 1
m["Bell Labs"] = &x
とかするのも本末転倒の様な気が
m = make(map[string]*int)
m["Bell Labs"] = &1
とかできないし…
m = make(map[string]*int)
x := 1
m["Bell Labs"] = &x
とかするのも本末転倒の様な気が
2014/12/13(土) 14:08:11.12ID:imyzRhSY
すみませんよくわかっていなかったようです…
type Vertex struct { Hage int }
func main() {
//primitive型 ------
var m map[string]int
m = make(map[string]int)
m["Bell Labs"] = 1
fmt.Println(m)
//中身構造体 ------
var n map[string]*Vertex
n = make(map[string]*Vertex)
n["Bell Labs"] = &Vertex{}
n["Bell Labs"].Hage = 1
fmt.Println(n)
//中身slice ------
var o map[string][]int
o = make(map[string][]int)
o["Bell Labs"] = append(o["Bell Labs"], 1)
fmt.Println(o)
o["Bell Labs"][0] = 2
fmt.Println(o)
}
こんな感じの使い分けですかね(´・ω・`)
sliceはappendでやれば直でokという感じなのかな…
type Vertex struct { Hage int }
func main() {
//primitive型 ------
var m map[string]int
m = make(map[string]int)
m["Bell Labs"] = 1
fmt.Println(m)
//中身構造体 ------
var n map[string]*Vertex
n = make(map[string]*Vertex)
n["Bell Labs"] = &Vertex{}
n["Bell Labs"].Hage = 1
fmt.Println(n)
//中身slice ------
var o map[string][]int
o = make(map[string][]int)
o["Bell Labs"] = append(o["Bell Labs"], 1)
fmt.Println(o)
o["Bell Labs"][0] = 2
fmt.Println(o)
}
こんな感じの使い分けですかね(´・ω・`)
sliceはappendでやれば直でokという感じなのかな…
2014/12/13(土) 14:43:59.47ID:BVSGhnq7
2014/12/13(土) 23:01:44.70ID:imyzRhSY
>>413
遅くなりましたがありがとうございます!
遅くなりましたがありがとうございます!
415デフォルトの名無しさん
2014/12/29(月) 23:22:29.55ID:QuoLDkEA 高階関数ってリフレクションしないと駄目っぽいな
せっかく関数が第一級オブジェクトなのに何か勿体ない
せっかく関数が第一級オブジェクトなのに何か勿体ない
416デフォルトの名無しさん
2015/01/06(火) 02:43:41.06ID:zpgKMgJd mattnさんgo本書いてくんないかなー
417デフォルトの名無しさん
2015/01/06(火) 17:32:14.22ID:M3VR0ni5 俺もmattn本に+1
言語仕様の説明よりもスーパーサンプル集的な書籍が欲しい
言語仕様の説明よりもスーパーサンプル集的な書籍が欲しい
418デフォルトの名無しさん
2015/01/06(火) 21:00:48.30ID:h8AkEaym 誰でもいいから本出してほしい
多少高くてもいいから。できれば一人でなく複数人
多少高くてもいいから。できれば一人でなく複数人
419デフォルトの名無しさん
2015/01/07(水) 09:21:21.81ID:AOiER/0b もう出てるけど、もっと深いのが欲しいのか?
420デフォルトの名無しさん
2015/01/07(水) 14:46:54.67ID:e24S5a9I androidで盛り上がれば本も増えるだろうな
421デフォルトの名無しさん
2015/01/07(水) 19:22:58.91ID:cvGCzuKQ422デフォルトの名無しさん
2015/01/07(水) 23:22:36.07ID:TubS6YKr マトン先生今年はヒツジ年だからなんか出すはず!
423デフォルトの名無しさん
2015/01/08(木) 12:15:26.41ID:r59ZtkkO 配列の最高値とインデックスを返すような多値関数から
最高値だけをAppendしたい場合、一旦変数に受けないと無理?
最高値だけをAppendしたい場合、一旦変数に受けないと無理?
424デフォルトの名無しさん
2015/01/08(木) 16:15:54.59ID:SnsO6Hw4 なぜmattunさんはチンチン丸出しの素っ裸なのか…
425デフォルトの名無しさん
2015/01/08(木) 20:38:46.44ID:PYPv/bx4 >>423
無理やりだけどこんな感じで
package main
import (
"fmt"
)
func _max(list []int) (int, int) {
if len(list) == 0 {
return 0, -1
}
max := list[0]
pos := 0
for i := 0; i < len(list); i++ {
if max < list[i] {
max = list[i]
pos = i
}
}
return max, pos
}
func main() {
arr_1 := []int{1, 10, 3, 4, 5, 6, 7, 8}
arr_2 := []int{100}
arr_2 = append(arr_2, (func(arg ...int) int { return arg[0] }(_max(arr_1))))
fmt.Printf("%v\n", arr_2)
}
無理やりだけどこんな感じで
package main
import (
"fmt"
)
func _max(list []int) (int, int) {
if len(list) == 0 {
return 0, -1
}
max := list[0]
pos := 0
for i := 0; i < len(list); i++ {
if max < list[i] {
max = list[i]
pos = i
}
}
return max, pos
}
func main() {
arr_1 := []int{1, 10, 3, 4, 5, 6, 7, 8}
arr_2 := []int{100}
arr_2 = append(arr_2, (func(arg ...int) int { return arg[0] }(_max(arr_1))))
fmt.Printf("%v\n", arr_2)
}
426デフォルトの名無しさん
2015/01/08(木) 20:48:39.89ID:r59ZtkkO427デフォルトの名無しさん
2015/01/08(木) 23:08:21.81ID:JAYi2dXH 即時関数か
golangでも出来るんやな
golangでも出来るんやな
428デフォルトの名無しさん
2015/02/04(水) 19:19:43.13ID:8Sw6mo5N go getでインストールしたパッケージはGOPATHで指定したパスにインストールされるけどさ
go listっていうのはこのGOPATHにインストールされているパッケージ一覧を表示してくれるってわけじゃないんですか?
$ go list
>can't load package: package .: no buildable Go source files in /home/kidotoyohiko
こうなるんですが
go listっていうのはこのGOPATHにインストールされているパッケージ一覧を表示してくれるってわけじゃないんですか?
$ go list
>can't load package: package .: no buildable Go source files in /home/kidotoyohiko
こうなるんですが
429デフォルトの名無しさん
2015/03/09(月) 12:22:38.99ID:ZcxXoJVE Go言語を勉強し始めたばかりだけど匿名フィールドは構造体名でアクセスできるんだな
気づくのにすこし時間かかった
type Aaa struct {
str1 string
}
func newAaa() *Aaa {
t := new(Aaa)
t.str1 = "str1"
return t
}
func (t *Aaa) Print() {
fmt.Println(t.str1)
}
type Bbb struct {
*Aaa
str2 string
}
func newBbb() *Bbb {
t := new(Bbb)
t.Aaa = newAaa()
t.str2 = "str2"
return t
}
func (t *Bbb) Print() {
t.Aaa.Print()
fmt.Println(t.str2)
}
func main() {
t := newBbb()
t.Print()
}
気づくのにすこし時間かかった
type Aaa struct {
str1 string
}
func newAaa() *Aaa {
t := new(Aaa)
t.str1 = "str1"
return t
}
func (t *Aaa) Print() {
fmt.Println(t.str1)
}
type Bbb struct {
*Aaa
str2 string
}
func newBbb() *Bbb {
t := new(Bbb)
t.Aaa = newAaa()
t.str2 = "str2"
return t
}
func (t *Bbb) Print() {
t.Aaa.Print()
fmt.Println(t.str2)
}
func main() {
t := newBbb()
t.Print()
}
430デフォルトの名無しさん
2015/04/27(月) 03:14:20.43ID:0ybKBVZB http://ideone.com/4EFjar
pop()と同じ動作を想定して, pop1() pop2()をかいてみたんですが
どちらも r=4 になってしまいます
goで式の評価順はどうなってるのでしょうか?
pop()と同じ動作を想定して, pop1() pop2()をかいてみたんですが
どちらも r=4 になってしまいます
goで式の評価順はどうなってるのでしょうか?
431デフォルトの名無しさん
2015/04/27(月) 08:55:25.98ID:SK92dx/y >>430
appendって領域が十分なら上書きしちゃったりするんじゃなかったっけ?
appendって領域が十分なら上書きしちゃったりするんじゃなかったっけ?
432デフォルトの名無しさん
2015/04/27(月) 11:53:03.95ID:0ybKBVZB >>431
上書きされてました ありがとうございます
上書きされてました ありがとうございます
433デフォルトの名無しさん
2015/05/27(水) 08:44:30.80ID:CaoeGQX/ main関数を他の関数の上に持っていくか下に持っていくか迷ってるんだけど
ルールがあったりする?
ルールがあったりする?
434デフォルトの名無しさん
2015/05/27(水) 12:03:24.54ID:KwGlDoiU C(K&R)ならともかくGOじゃないっしょ
無いよね?
無いよね?
435デフォルトの名無しさん
2015/06/03(水) 23:41:10.45ID:WPfxguwe Cじゃねえんだから好きにしろよ
436デフォルトの名無しさん
2015/06/05(金) 22:59:12.97ID:kU15dp2l Cとか書いた事も無いので何で後ろに有るのか不思議に思ってたけど
ググってスッキリした
ググってスッキリした
437デフォルトの名無しさん
2015/06/07(日) 17:29:20.20ID:rVbuZbAc A Tour of Go(日本語版)のフィボナッチ数のExerciseはテストされないのか
438デフォルトの名無しさん
2015/06/10(水) 19:04:40.57ID:vRKJ93PX A Tour od Go 日本語訳が色々辛い
439デフォルトの名無しさん
2015/06/11(木) 20:17:20.73ID:7zT8SS54 go build はカレントディレクトリに実行ファイルを生成
go install は go build に加えて実行ファイルをGOBINに移動させる
って理解であってる?
go install は go build に加えて実行ファイルをGOBINに移動させる
って理解であってる?
440デフォルトの名無しさん
2015/06/18(木) 12:32:46.05ID:UagCHqSk >>439
ttp://jp.techcrunch.com/2015/06/18/20150617google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
goがクライアントサイドで動くかも?
ttp://jp.techcrunch.com/2015/06/18/20150617google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
goがクライアントサイドで動くかも?
441デフォルトの名無しさん
2015/06/18(木) 13:02:41.32ID:oefBmuK0 レスやないやん
442デフォルトの名無しさん
2015/06/18(木) 17:54:28.09ID:z2QMHecM >>440
おおそれは面白そう
おおそれは面白そう
443デフォルトの名無しさん
2015/06/19(金) 16:59:13.37ID:fpEnerGj サーバサイドアプリを作ってるんですが、
ファイルの変更を検出して今のプロセスを殺して go run XXX.go を再実行してくれる良いツールないでしょうか?
Ctrl+c して go run XXXX.go とか地味にイライラする
ファイルの変更を検出して今のプロセスを殺して go run XXX.go を再実行してくれる良いツールないでしょうか?
Ctrl+c して go run XXXX.go とか地味にイライラする
444デフォルトの名無しさん
2015/06/19(金) 17:41:22.39ID:fpEnerGj445デフォルトの名無しさん
2015/10/31(土) 18:57:33.63ID:ELtLmf7b DLL作れるようになったのかと思ったらWindowsじゃサポートされてないのね
446デフォルトの名無しさん
2015/11/25(水) 07:15:24.66ID:rJmLSs5J447デフォルトの名無しさん
2015/12/01(火) 23:30:02.07ID:YHNsRt8H http://go-talks.appspot.com/github.com/lestrrat/go-slides/2014-yapcasia-go-for-perl-mongers/main.slide#58
このスライドの struct{} と struct{}{} ってなんですか?
このスライドの struct{} と struct{}{} ってなんですか?
448デフォルトの名無しさん
2015/12/02(水) 08:00:24.78ID:98kWsFh0 struct{}
空の構造体定義
struct{}{}
空の構造体定義&生成
空の構造体定義
struct{}{}
空の構造体定義&生成
450デフォルトの名無しさん
2015/12/04(金) 07:20:04.14ID:codNuEGF GOって全然流行らないね
451デフォルトの名無しさん
2015/12/04(金) 12:12:16.23ID:RqbsZlfd452デフォルトの名無しさん
2015/12/04(金) 13:21:31.35ID:hYxOV08j Rails登場前のRubyくらいの知名度かな
非エンジニアなクライアントにgolangもやってます、と伝えても初耳って人が多いね
技術者ならだいたい聞いたことはあるって帰ってくるけど
もっと流行っても良いんじゃないかとは思うけど、ぐぐれば情報が十分ある程度には使われてるし不自由な状況ではないんだよな
非エンジニアなクライアントにgolangもやってます、と伝えても初耳って人が多いね
技術者ならだいたい聞いたことはあるって帰ってくるけど
もっと流行っても良いんじゃないかとは思うけど、ぐぐれば情報が十分ある程度には使われてるし不自由な状況ではないんだよな
453デフォルトの名無しさん
2015/12/05(土) 02:50:44.50ID:XzVzQBrr ググラビリティが悪い
もうちょい名前を考えて欲しかったな
もうちょい名前を考えて欲しかったな
454デフォルトの名無しさん
2015/12/19(土) 15:53:57.84ID:TV8OiN+s goのEditorで今のおすすめは何かな?
俺の中ではVisualStudioCodeなんですが。
俺の中ではVisualStudioCodeなんですが。
455デフォルトの名無しさん
2015/12/19(土) 23:54:09.03ID:GM3q6wlH sublime textで特に不満ないよ
456デフォルトの名無しさん
2015/12/25(金) 02:25:51.96ID:y60VPA7n goは外部ツール充実してっからどのエディタでも同じレベルで快適だよ。だいたいgo用のパッケージかプラグインあるでしょ。だから好きなエディタ使え
457デフォルトの名無しさん
2015/12/31(木) 20:19:55.18ID:BO+mMVFR >> 455
IntelliJがいいよ。
はてなの中の人もオススメしてた。
IntelliJがいいよ。
はてなの中の人もオススメしてた。
458デフォルトの名無しさん
2015/12/31(木) 20:20:32.48ID:BO+mMVFR 上のレス >> 454 だった
459デフォルトの名無しさん
2015/12/31(木) 23:57:36.14ID:0xf2UWz7 来年はgo言語もちょっと盛り上がるといいね
460デフォルトの名無しさん
2016/01/01(金) 13:12:47.05ID:E/hak+Py マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !ll
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !ll
461デフォルトの名無しさん
2016/01/02(土) 15:11:34.83ID:dDeNCcj5 ・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
消費税ですね判ります
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
消費税ですね判ります
462デフォルトの名無しさん
2016/01/06(水) 23:14:14.44ID:4CIgSJD1 オライリーから本出るね
463デフォルトの名無しさん
2016/01/07(木) 00:14:59.45ID:0znhgkz2 どうせなら The Go Programming Language を翻訳してくれればいいのに
464デフォルトの名無しさん
2016/01/07(木) 00:45:00.91ID:wyILSx5n 今年3月に翻訳本が出るんじゃなかったっけ
465デフォルトの名無しさん
2016/01/07(木) 12:35:59.31ID:N5HH13xV 英語版だと5ドルで買えるから英語版読んだら。
466デフォルトの名無しさん
2016/01/13(水) 09:40:10.12ID:LriSB9Er Goの性能を測ってみたいと思いましてね
構成はこう
(1) Win10 Postgres Apache PHP5.6
PDO, prepare, execute, print
(2) Win10 Postgres GO
sql.Open, Query, Next(Fprintf)
テーブルから1000行6カラム読んでプリント
SQL文は同じ、Select * From TestTable Limit 1000
というテストを、負荷テストツールのpylot1.26でやってみたんすよ
結果
(1) 750リクエスト/分 80msec/一回
(2) 706リクエスト/分 84msec/一回
PHPはフレームワークも何も無しで10行くらい
Goも通ってるのは10行くらいなんですが
9割方データベースだろ、って状態ではこんな感じでしょうかね
構成はこう
(1) Win10 Postgres Apache PHP5.6
PDO, prepare, execute, print
(2) Win10 Postgres GO
sql.Open, Query, Next(Fprintf)
テーブルから1000行6カラム読んでプリント
SQL文は同じ、Select * From TestTable Limit 1000
というテストを、負荷テストツールのpylot1.26でやってみたんすよ
結果
(1) 750リクエスト/分 80msec/一回
(2) 706リクエスト/分 84msec/一回
PHPはフレームワークも何も無しで10行くらい
Goも通ってるのは10行くらいなんですが
9割方データベースだろ、って状態ではこんな感じでしょうかね
467デフォルトの名無しさん
2016/01/13(水) 11:46:07.30ID:EwraTGVM Win10使ってる時点でお察し
468デフォルトの名無しさん
2016/01/13(水) 12:08:33.96ID:uMvtIS1u 横からだけどこういう比較するときはVirtualBoxあたりでLinux環境立てたほうが良いんかね?
469デフォルトの名無しさん
2016/01/13(水) 14:35:53.26ID:CipOufW1 Go「Linuxなら…本気出す」
別の場所でちょい古のDebianで試してみた所
(1)PHP 463リクエスト/分 129msec/回
(2)Go 410リクエスト/分 145msec/回
やっぱりGoの方がわずかに遅いっぽい…
別の場所でちょい古のDebianで試してみた所
(1)PHP 463リクエスト/分 129msec/回
(2)Go 410リクエスト/分 145msec/回
やっぱりGoの方がわずかに遅いっぽい…
470デフォルトの名無しさん
2016/01/13(水) 14:58:45.80ID:CipOufW1 PasteBinに貼って置くので「ここやがな」てのが有れば教えてくれください
ttp://pastebin.com/kQBFhVQp
ttp://pastebin.com/6bACps6v
ttp://pastebin.com/kQBFhVQp
ttp://pastebin.com/6bACps6v
471デフォルトの名無しさん
2016/01/13(水) 15:54:22.06ID:EwraTGVM 糞はfmtじゃね
472デフォルトの名無しさん
2016/01/13(水) 17:13:31.80ID:jmhOlm9C part1 て....人気ないの?それとも2ch に書き込むような品性下劣な人間が少ないってこと?
473デフォルトの名無しさん
2016/01/13(水) 17:23:19.96ID:7cbOl3Dp Tiobe だと 50位以内に入ってないぞ
まあキッシュイーターが群がるような代物でもないけど
まあキッシュイーターが群がるような代物でもないけど
474デフォルトの名無しさん
2016/01/13(水) 18:05:20.91ID:EwraTGVM >>472
前にも Go スレは何度か建ってたのでこれが part1 というのは間違い
前にも Go スレは何度か建ってたのでこれが part1 というのは間違い
475デフォルトの名無しさん
2016/01/13(水) 19:30:58.60ID:cjoN9klk 言語仕様が安定してるから話すことないとかかな。
Swiftなんかガンガン変更しまくりで試行錯誤感が半端ない。
goにジェネリクスが付いたらまた変わるのかも。
正直メタプログラミングが弱いのが辛い。ちょっとしたツール系を作るのはいいけど、
Webアプリをこれで作りたいとあんまり思わないだよなぁ
Swiftなんかガンガン変更しまくりで試行錯誤感が半端ない。
goにジェネリクスが付いたらまた変わるのかも。
正直メタプログラミングが弱いのが辛い。ちょっとしたツール系を作るのはいいけど、
Webアプリをこれで作りたいとあんまり思わないだよなぁ
476デフォルトの名無しさん
2016/01/13(水) 22:56:09.25ID:jmhOlm9C なるほど。まあ罵詈雑言の応酬より過疎ってた方が読みやすくてありがたい
477デフォルトの名無しさん
2016/01/13(水) 23:22:36.01ID:Me1xU7va PDOはネイティブ呼び出しだから速いよ
478デフォルトの名無しさん
2016/01/14(木) 03:24:09.60ID:byr4bFjT >>475
webアプリではないけど、GAE/goをモバイルバックエンドに使ったらスケール悩まず書けて素敵なんだけどな
最近ならSPAでも便利だろう
小規模サービスなんで恐縮だが個人的には安く上がってると思ってる
ただそういう向きで価値見出す人はすでにAWSに取られちゃってる印象だよね
Datastoreを高いとは言わないけど落とし穴が多いとは思うし
goでwebやるならGAEも是非とは言いたい
webアプリではないけど、GAE/goをモバイルバックエンドに使ったらスケール悩まず書けて素敵なんだけどな
最近ならSPAでも便利だろう
小規模サービスなんで恐縮だが個人的には安く上がってると思ってる
ただそういう向きで価値見出す人はすでにAWSに取られちゃってる印象だよね
Datastoreを高いとは言わないけど落とし穴が多いとは思うし
goでwebやるならGAEも是非とは言いたい
479デフォルトの名無しさん
2016/01/14(木) 03:40:41.70ID:UUuhE8Rb >>470
自己メモレス
Fprintf(w, "書式", 変数)をやめる
Fprint(w, r.a + ":" + r.b ...
その場で一度に文字列連結、にすると2%くらい速くなる模様ですぞ
こうするとやってることはPHPとほとんど同一で、差も微粒子レベルで存在になるかな
自己メモレス
Fprintf(w, "書式", 変数)をやめる
Fprint(w, r.a + ":" + r.b ...
その場で一度に文字列連結、にすると2%くらい速くなる模様ですぞ
こうするとやってることはPHPとほとんど同一で、差も微粒子レベルで存在になるかな
480デフォルトの名無しさん
2016/01/14(木) 10:38:57.14ID:YBLBbkKl >>478
手軽にwebAPIサーバーが書けるフレームワークって何が便利なの?
echo?gin?そろそろデファクトスタンダードが出てほしい。
最近Elixir+phonix触ってるんだけど、エラー時にプロセス再起動する機能が組み込んであるのが便利そう。
goでデーモン書くのって決まりきった書き方もないみたいだし、
いろいろ下回りを自前で準備する感じがするんだけど、、、
手軽にwebAPIサーバーが書けるフレームワークって何が便利なの?
echo?gin?そろそろデファクトスタンダードが出てほしい。
最近Elixir+phonix触ってるんだけど、エラー時にプロセス再起動する機能が組み込んであるのが便利そう。
goでデーモン書くのって決まりきった書き方もないみたいだし、
いろいろ下回りを自前で準備する感じがするんだけど、、、
481デフォルトの名無しさん
2016/01/14(木) 19:16:39.15ID:MVoyv7BA >>479
Fprintf も止めればもっと速くなる
Fprintf も止めればもっと速くなる
482デフォルトの名無しさん
2016/01/14(木) 21:11:50.22ID:x8stlI1n483デフォルトの名無しさん
2016/01/14(木) 21:28:59.92ID:eYypgRpr484デフォルトの名無しさん
2016/01/15(金) 23:01:47.93ID:27wkGJB0 1.5.3ってセキュリティfixだけですか?
milestoneのは入っているんでしょうか。
milestoneのは入っているんでしょうか。
485デフォルトの名無しさん
2016/01/16(土) 05:56:46.68ID:2dhmjbRf >>482
おっ、どんなだろ予約しておこう
おっ、どんなだろ予約しておこう
486デフォルトの名無しさん
2016/01/25(月) 00:44:23.45ID:MxjMVzG6 Goで素数判定をエラトステネスのふるいにして書いてみたけどrubyのprimeライブラリより遅かった
Goってあんまり速くないの?教えてエロい人
Goってあんまり速くないの?教えてエロい人
487デフォルトの名無しさん
2016/01/25(月) 00:54:54.11ID:11Jcfjfr Go のバージョンと実際に書かれたコードが分からんので何とも言えない
488デフォルトの名無しさん
2016/01/25(月) 01:16:17.48ID:MxjMVzG6489デフォルトの名無しさん
2016/01/25(月) 01:48:00.41ID:11Jcfjfr $ ruby --version
ruby 2.2.3p173 (2015-08-18) [i386-linux-gnu]
$ time { ruby -e 'require "prime";print Prime.take(10000)' > /dev/null; }
real 0m0.405s
user 0m0.400s
sys 0m0.008s
↓このコードをローカルにコピーして、
http://play.golang.org/p/XXiTIpRBAu
const N = 104740 に変更してビルド・実行。
$ go version
go version devel +4f40182 Sat Jan 23 01:28:06 2016 +0000 linux/386
$ go build prime.go
$ time { ./prime > /dev/null; }
real 0m0.064s
user 0m0.048s
sys 0m0.016s
ruby 2.2.3p173 (2015-08-18) [i386-linux-gnu]
$ time { ruby -e 'require "prime";print Prime.take(10000)' > /dev/null; }
real 0m0.405s
user 0m0.400s
sys 0m0.008s
↓このコードをローカルにコピーして、
http://play.golang.org/p/XXiTIpRBAu
const N = 104740 に変更してビルド・実行。
$ go version
go version devel +4f40182 Sat Jan 23 01:28:06 2016 +0000 linux/386
$ go build prime.go
$ time { ./prime > /dev/null; }
real 0m0.064s
user 0m0.048s
sys 0m0.016s
490デフォルトの名無しさん
2016/01/25(月) 02:28:15.33ID:MxjMVzG6 >>489 thx
それぐらいの桁数だと自分の環境でもgoのコードのが速いんだけど、桁数増えると圧倒的に負けるようになる
というかgoが時間かかりすぎる
104700000が素数かどうかの判定の時点ですでに負けてる
$ go version
go version go1.5.1 darwin/amd64
$ time ./prime
(結果略)
0.38s user 0.01s system 98% cpu 0.395 total
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
$ time tuby -e 'require "prime"; p 104700000.prime?'
(結果略)
0.13s user 0.09s system 86% cpu 0.254 total
goコード: http://play.golang.org/p/1y7lrBML1-
それぐらいの桁数だと自分の環境でもgoのコードのが速いんだけど、桁数増えると圧倒的に負けるようになる
というかgoが時間かかりすぎる
104700000が素数かどうかの判定の時点ですでに負けてる
$ go version
go version go1.5.1 darwin/amd64
$ time ./prime
(結果略)
0.38s user 0.01s system 98% cpu 0.395 total
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
$ time tuby -e 'require "prime"; p 104700000.prime?'
(結果略)
0.13s user 0.09s system 86% cpu 0.254 total
goコード: http://play.golang.org/p/1y7lrBML1-
491デフォルトの名無しさん
2016/01/25(月) 08:54:26.29ID:11Jcfjfr そんなに遅いかな?
x86_64 環境で Prime.take(10000000) をやってみたんだけど(10^7)、
$ ruby --version
ruby 2.2.3p173 (2015-08-18) [x86_64-linux-gnu]
$ go version
go version devel +970ce1c Sun Jan 24 16:07:30 2016 +0000 linux/amd64
ruby: 0m25.204s
golang: 0m5.902s
となった。prime? メソッドについては後で ruby のソースコードを見てみる
x86_64 環境で Prime.take(10000000) をやってみたんだけど(10^7)、
$ ruby --version
ruby 2.2.3p173 (2015-08-18) [x86_64-linux-gnu]
$ go version
go version devel +970ce1c Sun Jan 24 16:07:30 2016 +0000 linux/amd64
ruby: 0m25.204s
golang: 0m5.902s
となった。prime? メソッドについては後で ruby のソースコードを見てみる
492デフォルトの名無しさん
2016/01/25(月) 09:30:52.61ID:11Jcfjfr ここは、
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if int64(i) % j == 0 { flg = false }
}
if flg == true { primes = append(primes, int64(i)) }
}
こうすべきなんじゃ?
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if n%j == 0 { return false } // 追加
if int64(i)%j == 0 { flg = false }
:
そりゃ n までの素数を全部計算してからチェックしたら遅いわな
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if int64(i) % j == 0 { flg = false }
}
if flg == true { primes = append(primes, int64(i)) }
}
こうすべきなんじゃ?
for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if n%j == 0 { return false } // 追加
if int64(i)%j == 0 { flg = false }
:
そりゃ n までの素数を全部計算してからチェックしたら遅いわな
493デフォルトの名無しさん
2016/01/27(水) 00:44:58.41ID:YbPGx/2n494デフォルトの名無しさん
2016/01/27(水) 10:03:42.93ID:PS/Qpp4W >>493 はフィボナッチでも劇遅糞プログラミングしそう
495デフォルトの名無しさん
2016/01/27(水) 11:55:10.02ID:ChRzt0VQ >>493
それで結果はどうなったの?rubyより早くなった?
それで結果はどうなったの?rubyより早くなった?
496デフォルトの名無しさん
2016/01/27(水) 21:15:12.05ID:hT8Bs+OE >>495
素数: 1853028778786433 について試してみた
$ time ruby -e 'require "prime"; puts 1853028778786433.prime?'
4.61s user 0.08s system 99% cpu 4.700 total
golang の方は有意な時間で判定できなかった。
逆に小さな約数を持つ場合だと golang のが早かったりする。
一体どうやったらこんなに速くなるんだ・・・
素数: 1853028778786433 について試してみた
$ time ruby -e 'require "prime"; puts 1853028778786433.prime?'
4.61s user 0.08s system 99% cpu 4.700 total
golang の方は有意な時間で判定できなかった。
逆に小さな約数を持つ場合だと golang のが早かったりする。
一体どうやったらこんなに速くなるんだ・・・
497デフォルトの名無しさん
2016/01/27(水) 21:33:03.27ID:hT8Bs+OE と思って prime.rb を参考に改良した
$ time ./prime
1853028778786433 is prime!./prime4 0.18s user 0.01s system 98% cpu 0.189 total
いい感じ!アドバイスくれた人サンクスでした
コード: http://play.golang.org/p/-8oZ5IaC60
$ time ./prime
1853028778786433 is prime!./prime4 0.18s user 0.01s system 98% cpu 0.189 total
いい感じ!アドバイスくれた人サンクスでした
コード: http://play.golang.org/p/-8oZ5IaC60
498デフォルトの名無しさん
2016/01/27(水) 23:10:29.76ID:qL6rtn4g どれだけ高度なコンパイラを使おうとアルゴリズムがダメならインタプリタに負けるって事がはっきりわかんだね
499デフォルトの名無しさん
2016/01/30(土) 13:13:18.17ID:dxvhMaRr500デフォルトの名無しさん
2016/01/30(土) 14:11:30.69ID:VBtK9+ST501デフォルトの名無しさん
2016/01/30(土) 18:06:51.65ID:dxvhMaRr ごめん、はやくなってなかったorz
502デフォルトの名無しさん
2016/02/03(水) 01:00:13.99ID:RekMB9Ax goは言語仕様が絞られて素敵だけど、
いざ使うとなるとやっぱりメタプログラミングに弱いのが辛い。
リフレクションも使いづらいし、ジェネリクスがほしい。
せめてelxirのマクロみたいな機能でもほしい。
いざ使うとなるとやっぱりメタプログラミングに弱いのが辛い。
リフレクションも使いづらいし、ジェネリクスがほしい。
せめてelxirのマクロみたいな機能でもほしい。
503デフォルトの名無しさん
2016/02/03(水) 01:10:28.85ID:sGnqiCrl groovy でも使っとけ
504デフォルトの名無しさん
2016/02/03(水) 19:27:02.90ID:8oEH7nQt ,_---~~~~~----._
_,,_,*^____ _____``*g*\"*,
/ __/ /' ^. / \ ^@q f
[ @f | @)) | | @)) l 0 _/
\`/ \~____ / __ \_____/ \
| _l__l_ I
} [______] I
] | | | | お年寄り向け言語に文句言うな
] ~ ~ |
| |
| |
_,,_,*^____ _____``*g*\"*,
/ __/ /' ^. / \ ^@q f
[ @f | @)) | | @)) l 0 _/
\`/ \~____ / __ \_____/ \
| _l__l_ I
} [______] I
] | | | | お年寄り向け言語に文句言うな
] ~ ~ |
| |
| |
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 気象庁・高市内閣「この後311級の地震の可能性があります。北海道〜関東の人は1週間は地震が来てもすぐ逃げられる格好をしてください」 [597533159]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- バリ島で万引きした高校生が叩かれているけどさ
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
