X



Go language part 1

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2013/10/10(木) 12:04:51.78
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
0005デフォルトの名無しさん
垢版 |
2013/10/11(金) 03:38:07.23
go to the jukai
0006デフォルトの名無しさん
垢版 |
2013/10/11(金) 18:13:03.60
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0015デフォルトの名無しさん
垢版 |
2013/10/26(土) 12:02:28.85
未使用変数やインポートでコンパイルエラーになるのはビビる
ライブラリ周りが整ったら使ってみたいな
0017デフォルトの名無しさん
垢版 |
2013/10/26(土) 13:37:33.48
枯れてたり流行ってる言語ならスレも盛り上がるが
Goは新しいし情報があまり出回ってないっていうものあって
ブログとかSNSとかスライドとか発表会で発表したほうが名前が売れるから2ちゃんじゃ盛り上がらないだろうな
情報に精通してる人ならここも見てるはずなんだけどね
0018デフォルトの名無しさん
垢版 |
2013/10/26(土) 14:04:00.67
                                            糸冬
                                       ---------------
                                        制作・著作 NHK
0019デフォルトの名無しさん
垢版 |
2013/10/27(日) 00:14:36.66
例の10%の自由開発時間で作った成果物だから
あんまり積極的に開発継続しないんじゃないの?
0024デフォルトの名無しさん
垢版 |
2013/11/04(月) 17:48:37.72
パッと見、for文すらヘンテコな記号がいっぱいでてきてロクに読めない
もうちょっと分かりやすくしてくれよ

こんな感じで書ける様に
for a = 0 while a < 100 step a++ do {
...
}
foreach a in 0..100 do {
...
}
0027デフォルトの名無しさん
垢版 |
2013/11/09(土) 19:46:10.60
リフレクションって構造体メンバ関数自体を値として取ること出来んの?
[key] = func
って感じに使いたいんだけど
0031デフォルトの名無しさん
垢版 |
2013/11/10(日) 18:50:31.27
>>29
大規模開発だな。
言語仕様的に、別人が作ってしまって手が付けられないライブラリーでも
型がinterfaceに対応してないから、
委譲用のコード書かなきゃいけないとか、
ポインターに委譲するのに関数から同じ名前の関数に引き数を
渡す処理を書くとかしなくて済むようになってる。
0033デフォルトの名無しさん
垢版 |
2013/11/24(日) 15:44:05.14
GoSFML2のサンプルをwindowsでコンパイルしたのですが
黒い窓が出てきてしまいます
オプションか何かで消すことは出来ますか?
また、そのようなオプションが無い場合は、何か他の手段で消すことは出来ますか?
003433
垢版 |
2013/11/24(日) 16:10:52.86
自己解決しました

go build -ldflags "-H windowsgui"

で出来ました
0035デフォルトの名無しさん
垢版 |
2013/12/02(月) 10:47:43.38
Goのリファレンスドキュメントをネットのない環境でも参照できるよう、ローカルにダウンロードしておきたい。
でもGoのSDKに入っているドキュメントは、golang.orgに繋がることが前提のようだった。
リファレンスをローカルに落とす方法ってない?(wgetだとリンクが・・・)
0038デフォルトの名無しさん
垢版 |
2013/12/10(火) 11:52:24.39
main.go:5:2: cannot find package "http" in any of:

何これ?標準でhttpパッケージ有るし
GorootのPathも通してんだけど
0046デフォルトの名無しさん
垢版 |
2014/01/20(月) 06:13:09.40
go
http://unkar.org/r/tech/1257920595/ 2009年に華々しく初登場。3日で消化
Go part2
http://unkar.org/r/tech/1258183436/ まだまだ衰えず10日で消化
Go part3
http://unkar.org/r/tech/1259072043/ だいぶ落ち着いてきた3ヶ月で消化
Go part4
http://unkar.org/r/tech/1265620273/ ほぼ1年で消化。すっかり普通のスレに。
Go part5
http://unkar.org/r/tech/1327216227/ 17res。オワコン
Go 総合スレ
http://unkar.org/r/tech/1342535690 再建。しなかった。4resでアイちゃんフィニッシュ
Go の宿題片付けます
http://toro.2ch.net/test/read.cgi/tech/1257968644/ part1の頃立った残骸。

そして2013/10/10。何もなかったようにpart1で立て直す。
何も知らない情弱共が何も知らない顔で書き込み
結局即レスは回避したようだ。おめでとう。
0050デフォルトの名無しさん
垢版 |
2014/01/27(月) 13:00:41.91
今年入ってからちょっと触ってるけど、これ結構いい感じだと思う
これが一番って感じにはならないかもしれないけどいくつか修得するうちの一つとしては薦められるようにはなってほしい
0051デフォルトの名無しさん
垢版 |
2014/01/27(月) 13:15:20.02
パッケージ次第で凄い可能性があると思う
ここがプロの仕事で素人はインポートしてチョロ書きするだけで良い
0054デフォルトの名無しさん
垢版 |
2014/02/02(日) 04:01:00.42
syscallパッケージとかで得たfdがあるときに
第一引数にそれ、第二引数に保存先パスを渡して使うみたい
使ったことないけど
0057デフォルトの名無しさん
垢版 |
2014/02/07(金) 15:41:24.67
たまにループの中で変数宣言して使ってるのを見かけるのですが
ループの度に初期化されて処理速度に影響がないのだろうかと
測ってみると殆ど影響がないようです

ループ内だけで使う物ならば、スコープ的にも積極的に
ループ内で宣言した方が良いのでしょうか?
0059デフォルトの名無しさん
垢版 |
2014/02/07(金) 19:04:19.54
> ループの度に初期化されて処理速度に影響がないのだろうかと

決めつけず測定して確認したのは間違ってないけど、もうちょっとマクロに、
なんというかいちいち気にするまでもないムダをスルーする感覚を....
難しいかなぁ。
0060デフォルトの名無しさん
垢版 |
2014/02/07(金) 23:37:47.28
その感覚難しい

今もまたIF ElseとSwich Caseでどっちが速いのか気になってやっちゃうし
AppendのCapは指定しとく方が速いのか気になってやっちゃう
所詮素人が趣味で作ってるレベルなのでご容赦を
0061デフォルトの名無しさん
垢版 |
2014/02/14(金) 17:23:52.61
もうちょっと情報が欲しいな
基本的な事以外は全部手探りだから時間が掛かる

例えば、フィールドにスライスがある構造体で
構造体自体のスライスを作って増やしつつ
更にフィールドのスライスも増やす、とかさらっと書けない
試行錯誤で何とか出来たけど…
0063デフォルトの名無しさん
垢版 |
2014/02/15(土) 17:30:52.59
>>60
>AppendのCapは指定しとく方が速いのか

これ要素追加が1万程度(Append1万回)なら
Cap指定しない方が僅かに速いか殆ど変わらない
どういう理屈でそうなんのか分からんけど
0064デフォルトの名無しさん
垢版 |
2014/02/21(金) 12:13:52.04
>>63
キャッシュが効いてるだけ
事前に要素数が分かっていればCap指定しないと値のコピーが繰り返されるので遅い
0065デフォルトの名無しさん
垢版 |
2014/03/03(月) 11:19:34.46
BreakeがSwichに効くのやめて欲しいわ
折角省略出来るようにしたんだから書いても同じ動作になるなら意味無いでしょ
0067デフォルトの名無しさん
垢版 |
2014/03/27(木) 00:35:35.75ID:NajF0K82
初心者だけどstrings.Reader をio.Reader として渡せるって仕様としてどうなの
継承も何もしてないけどコンパイル時にチェックされてるの?
0069デフォルトの名無しさん
垢版 |
2014/03/27(木) 01:23:58.48ID:NajF0K82
string.Readerはio.Readerを継承してるの?
io.Readerの条件を満たしてるとは書いてると思ったけど
0070デフォルトの名無しさん
垢版 |
2014/03/27(木) 01:44:26.20ID:NajF0K82
突っかかってるようで悪かった
継承がない言語でダックタイピングできる、つまり条件を満たしてるとどうやって確信できるかわからなかったんだ
標準ライブラリを読んでるんだけど型アサーションしてないから不安になってるだけ
0071デフォルトの名無しさん
垢版 |
2014/03/27(木) 05:15:32.21ID:syLidNhE
ある型がインタフェースを実装してるかは規定されてるメソッドがあるかどうかだけで決まる
Javaみたいに明示しない
ちなみにインタフェースを実装してるかどうかはコンパイル時に解決される
strings.ReaderだったらRead(p []byte) (n int, err error)を持ってることからio.Readerを実装しているといえる

もし実装できてないのにそのインタフェースに代入しようとしたらコンパイルエラー出るから試してみて
これが非明示的なのはGoの目玉の一つだから公式のドキュメントなりどっかのブログなり読んでね
0074デフォルトの名無しさん
垢版 |
2014/04/21(月) 00:41:39.71ID:BvA2ph+v
Goの継承っぽい機能って日本語で何て呼ぶのが良いんだろ
埋込型って呼んでるけど伝わるんかな
0076デフォルトの名無しさん
垢版 |
2014/04/22(火) 00:56:19.23ID:V38u3ZKO
http://golang.org/ref/spec#Struct_types
>A field declared with a type but no explicit field name is an anonymous field, also called an embedded field or an embedding of the type in the struct.
0079デフォルトの名無しさん
垢版 |
2014/04/22(火) 19:04:17.16ID:px+UMl9z
ちょっとしたコードを書いただけでもサイズが大きくなるのなんとかならんのかな
0082デフォルトの名無しさん
垢版 |
2014/05/05(月) 23:06:49.70ID:YuCWT0mm
むしろ組込み向けのほうがダイナミックリンクは避けたくないか?
Goが組込みに向いてるかどうかは別として。
0083デフォルトの名無しさん
垢版 |
2014/05/08(木) 05:12:59.74ID:5XLbD0ro
デバッグまともに出来るIDEあんのこれ?
32Bitで開発環境統一した方がいいんかな
0085デフォルトの名無しさん
垢版 |
2014/05/23(金) 23:43:10.01ID:kqkMywsW
むしろdartじゃないか
0087デフォルトの名無しさん
垢版 |
2014/05/24(土) 13:58:01.94ID:35dvvibx
ファイルサイズが大きくなるのでこんなのが流行るのは困る
大手企業のプログラマーなら時間もあるし仕事で試しに導入するなんてことも余裕だけど
中小だとそんな余裕はない
0090デフォルトの名無しさん
垢版 |
2014/06/06(金) 22:59:44.76ID:a9mGSAin
C++は自分で一から書く文には問題ないけど、書き方が無茶苦茶な人から引き継いだ時が悲惨だった
そういうのがマシになりそうなコンパイラ言語だからこれ普及して欲しいんだけど、周りで扱ってる人ほとんどいないんだよなあ
0095デフォルトの名無しさん
垢版 |
2014/06/20(金) 22:23:23.60ID:QMkHcad5
windows環境でのGUIライブラリがもっと発展すれば普及もしそうなのにね
コンパイラ言語だし、仕様とかも結構気に入ってるからもっと頑張って欲しいんだけどなあ
0096デフォルトの名無しさん
垢版 |
2014/06/21(土) 00:05:57.28ID:UJNwDYla
windows環境ならWalk使えば良いんだけど、
リファレンスやチュートリアルが無いのが広まらない原因なのかなぁ。
サンプルは豊富なので機能は充分だと思うが。
0098デフォルトの名無しさん
垢版 |
2014/06/21(土) 01:55:32.09ID:2OQISpPs
walk知らんかったけどmain見て萎えた
これをcoolって言っちゃってるひとって・・・
0106デフォルトの名無しさん
垢版 |
2014/06/24(火) 22:05:30.11ID:3jg/jifd
Go界隈で日本語コミュニティ必要ないからな
みんな英語できるだろうし
0110デフォルトの名無しさん
垢版 |
2014/07/05(土) 14:32:15.90ID:pTDYhgjU
>>109 環境的には組み込みソフトと同じだよ。
Hello World が、1MB何て許せるわけが無い。
基本ライブラリは端末組み込みで持つだろうから、Androidが標準装備すればもう少し小さくなるだろうが、今度はOSがでかくなる。
0111デフォルトの名無しさん
垢版 |
2014/07/05(土) 14:41:39.27ID:t0Gvg/Rs
気持ちはわからなくもないけどねえ
16Gや32Gストレージなんて当たり前なところで、OSが多少増えてどうこうと言われてもさすがに
0112デフォルトの名無しさん
垢版 |
2014/07/05(土) 15:43:21.74ID:pTDYhgjU
>>111 全てのアプリが何倍かの大きさになったら困るだろ?一つの話じゃ無いんだよ。
間、そんな事には成らないだろうがどのくらい大きくなるか未知数、今判断には時期尚早。

基本的には論外な大きさは悪
0113デフォルトの名無しさん
垢版 |
2014/07/05(土) 16:47:01.80ID:oA33QTWa
Androidでいろいろ作ってて感じるのは
今や主メモリやストレージを埋めるのは映像や音声のデータだっていう現実
コードが占める割合はかなり少なくなってきてる
0114デフォルトの名無しさん
垢版 |
2014/07/05(土) 17:15:09.73ID:5LgT0AK3
Android じゃないけど、自分の Ubuntu Linux 14.04(Intel 32bit CPU版) で
PATH にある実行形式ファイル(ELF, Dynamically linked executable)を調べ
てみると、

ファイル数: 1822
合計サイズ: 356 MB

「Hello World!」を表示するだけのプログラムサイズは(両方ともstrip済)、

C言語: 5532 B
Go言語: 1065264 B

これで単純な外挿計算を行うと 67 GB にもなるけど、そこまで膨れ上がる
ことはないでしょうね。ただ、「shared object ってステキ!」って感じはするw
0117デフォルトの名無しさん
垢版 |
2014/07/05(土) 19:14:06.90ID:oA33QTWa
>>114
各実行ファイルにgo用のランタイムがくっつくと考えると
356[MB] + 1822×(1065264[B] - 5532[B]) = 2.2[GB]じゃね?
実際はもうちょっと増えると思うが
0120デフォルトの名無しさん
垢版 |
2014/07/05(土) 23:28:12.02ID:rxWIrUjL
容量減らすためだけにポータビリティ捨てたくはないかな。

Rob PikeらはPlan 9の論文で動的リンクの問題点をあげつらってたから、
たぶん今後も静的リンクから変えない気がするし。
0122デフォルトの名無しさん
垢版 |
2014/07/06(日) 08:10:08.75ID:CKDdGv5O
やっぱそうなるのか
HTMLで描画の性能が出せるようになってきたから
ネイティブウィンドウに拘る必要は少なくなったのかな
0128デフォルトの名無しさん
垢版 |
2014/07/09(水) 14:56:08.07ID:SDA1RKlK
goって存在価値あるのか? NaCl PNaCl で事足りるだろ。

言語を作りたいから作ったと言う自己満足だけでは?
これが有ると何が出来るようになったり,効率が良くなったりするのかな?
何がしたいの?

そういやDartも有るな。 あれはJavascriptの置き換えを狙ってるから目的がはっきりしてる。
0131デフォルトの名無しさん
垢版 |
2014/07/09(水) 22:41:26.96ID:8SChLIyJ
ファイルサイズが大きい言ってるから、hello worldの実行形式をreadelfしたら使ってなさそうなシンボルがうじゃうじゃいたけど、まだいろいろ工事中なのかい?
0132デフォルトの名無しさん
垢版 |
2014/07/16(水) 21:08:08.10ID:YrYvz6dv
実行ファイルのサイズ見るだけで期待の新言語感が綺麗さっぱり消滅するよな
静的リンクだからで許されるサイズじゃねーだろ。

Goとは関係ないけど、JS界隈なんぞもたかだか数百数千行のJSをビルドするために
何十MBものnode_modules作るとか意味わからんし。言語のメリット投げ捨てとるわ

提言としては、今どきのプログラマ容量の感覚がおかしいので全員8ビット時代からやり直すべき
あるいは4Kとか64Kのメガデモでも作るとかな
0133デフォルトの名無しさん
垢版 |
2014/07/16(水) 21:10:00.51ID:ue0KWKB4
>>132
さっさと去れよ
0134デフォルトの名無しさん
垢版 |
2014/07/16(水) 21:10:33.17ID:YrYvz6dv
GoほどじゃないがRustもでかい。システムプログラミング言語としてやる気あるんかお前ら
C言語当分安泰だわ。
0135デフォルトの名無しさん
垢版 |
2014/07/16(水) 21:26:57.08ID:18iWZycG
>>132
node.jsにモジュール上げたときも外人もクレクレ厨ばっかりだったな

firefox は勝手にメモリ使いまくって
2GB以上になったとたん固まって落ちるし
0136デフォルトの名無しさん
垢版 |
2014/07/16(水) 21:33:51.50ID:YrYvz6dv
>>133に去れとか言われたのでもう少し粘着するよ。

ここに去年の12月のエントリがあるんだがな。
「Goのバイナリサイズは膨らみ続け、制御不能になりつつある」

Go Binary Sizes Are Growing out of Control ? Donat Studios
https://donatstudios.com/Golang-Binary-Sizes

追記がうける。これはGoが糞だとかそういう趣旨じゃない。私はGoを愛しているw
Redditでほのめかされてるように開発者が怠惰で無能と言っているわけじゃない云々w

言語の問題を指摘するためにこういう弁明をしなければならないこと自体糞だが、
恐ろしいのは、このrant以後も、バイナリサイズがさらに膨れ上がっていることだ。
設計上、思想上の欠陥があると見なすべきで
こういう明らかな問題点を見て見ぬふりする言語コミュニティに期待するかどうか。


俺はしないね。


フロッピー1枚に入らないHello Worldって何だよ。いやマジに。
0140デフォルトの名無しさん
垢版 |
2014/07/17(木) 07:10:02.53ID:/y/RnBj0
>>136

最近使ってるpecoのファイルサイズ見たら4.1MBだった。ちょっとしたツール系でこのサイズは・・・とか思ったけど、今どきメモリは4GB,8GBくらいあたりまえに載ってる時代だし、もう許すことにした

組み込みでは使えないってことだね
0141デフォルトの名無しさん
垢版 |
2014/07/17(木) 08:38:37.24ID:Emdyn2Mx
わかってるわかってないの水掛けこそ、上っ面の駄レスだろ
おかしいところを具体的に突いてやれば、言い返せないしこのスレの質向上にもなる
0144デフォルトの名無しさん
垢版 |
2014/07/17(木) 12:27:33.98ID:q6z1PJAH
>>140 大きいと言う事は全てにおいて時間がかかると言う事なんだぞ。 つまりあらゆる面で生産性が低くなる。
そんな言語誰が使う。

作ってる奴がヘタレだとか基本設計自体に問題が有るとかさんざん言われてる。
0147デフォルトの名無しさん
垢版 |
2014/07/17(木) 16:46:46.06ID:MN+A29Er
Go は使う側にとって何かメリットをもたらすのか?

メリットが見えずにデメリットばかりが目立つ。
作る目的がはっきりしてい無いから何年経っても出来上がらないんだよ。

Swiftと大違い。あっちは公開前からブレークしてる。
沢山のメリットが誰の目から見ても明らかにわかるからだよ。

Go の公式REPLは有るんだっけ?
0150デフォルトの名無しさん
垢版 |
2014/07/17(木) 19:58:44.51ID:O9NXfjPR
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

    ─┼-        /   |   ‐┼-   |     ー|―
    ─┼─ |   \ レ  /   ̄Tー  /      ノ -─
   (二フヽ  \/    _ノ   (二フ\  ヽ_ノ   / 、__

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (十万石)     \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c
0153デフォルトの名無しさん
垢版 |
2014/07/18(金) 08:06:18.24ID:KrkzFLu9
最近のGoogleは自分で自分の首を絞め始めてる様に見えるな。
会社として収集がつかなくなってしまった感じ。
0154デフォルトの名無しさん
垢版 |
2014/07/18(金) 09:03:19.13ID:JbZ7Qo5I
いや昔からこのノリだけど
小さなグループ毎に好き勝手やってる感じ
むしろ最近は昔よりまとめようとしてる
0155デフォルトの名無しさん
垢版 |
2014/07/18(金) 12:50:52.86ID:DOB4ifCF
NaCl PNaCl > 速いスピード
Dart > Javascript の置き換え

Noop > Java VMで動く新言語、Oracleとの喧嘩用?

Go > 目的不明(サーバアプリ?)

上二つは上手くやれば美味しいものも見えるし、業界の方向性にもあっている。

Noopは保険みたいなものだろう。ユーザにとっては迷惑なだけ。

Go は美味しそうな匂いがし無い。 並列処理?他の言語より美味しいか?
0159デフォルトの名無しさん
垢版 |
2014/07/18(金) 14:57:25.22ID:cGkLMo0w
hello worldが大きくてもそれの数百倍の大きさのプログラムをコンパイルしたら
数百倍の大きさの実行ファイルが出来るわけでは無いだろ
0161デフォルトの名無しさん
垢版 |
2014/07/18(金) 22:10:34.84ID:DOB4ifCF
>>156 ユーザにとって美味しい餌が無いと言語も流行らないんだよ。

なんで三項演算子( ? : ) すら作らないんだろう。文法に無駄が多い。

// 入力値iが正の整数の場合iの2乗が、iが0以下の整数の場合0が返されるfunction

// Go
func Fx(i int) (ret int) {
if i > 0 { ret = i*i } else { ret = 0 }
return;
}

// Swift 三項演算子
func fx( i: Int ) -> Int { return i > 0 ? i*i : 0 }

// Swift 三項演算子を使わない場合。
func fx( i: Int ) -> Int {
if i > 0 { return i*i } else { return 0 }
}
0162デフォルトの名無しさん
垢版 |
2014/07/18(金) 22:51:20.66ID:hMlFBsak
流行らなかったら何百(何千?)とあるプログラミング言語の一つが静かに
消えていくだけ。しかし三項演算子が美味しい餌ってのはワケが判らんなw

どうしても欲しかったらこんなのでもいいんじゃない

type Any interface{}

func T(exp bool, a Any, b Any) Any {
 if exp {
  return a
 }
 return b
}

もちろん、これは三項演算子モドキにもなっていないけど。
本物の三項演算子が必要なら src/cmd/gc/lex.c に追加する
なりしてもいいし
0163デフォルトの名無しさん
垢版 |
2014/07/18(金) 22:51:30.47ID:Mqs0/spS
3項演算子はレガシーコードだな
うんこが現れたと言うことはGoも注目されてるのか?
0164デフォルトの名無しさん
垢版 |
2014/07/19(土) 05:03:22.62ID:SmxhOcgK
goのほうが言語仕様的には美しくて無駄が少ないと思うけど

型についてレシーバ(メソッド)が付けられるからClassを削って構造体のみにしたって所とか、関数は複数の値を返せるから通常のtry-catchみたいな例外文法削ったりとか、intefaceの実装の自動化によるduck typingっぽい感じとか

SwiftはなんかまだObjective-Cのラッパーて感じ。
引数のラベル付とか。selectorが使える所とか。
0167デフォルトの名無しさん
垢版 |
2014/07/19(土) 13:50:20.51ID:1hzYIwWV
>>164
>例外
例外文法削ったのではなく、例外自体削ったんだろ。パフォーマンス出すためにな
例外機構が必要な言語もある。

duck typingはSwiftの設計方針に合わない。goのinterfaceは面白いけど

>引数のラベル付き
これは他言語にもあるぞ。Rubyとか
引数後少なかったり、関数名から引数が明白な場合を除いてキーワード引数はわかりやすくて良いよ。

なんつーか、SwiftよりGoのが良いって前提で話してるよな。
どっちも良い所あるんだから、優劣付けずに話せばいいのに。
0169デフォルトの名無しさん
垢版 |
2014/07/19(土) 14:19:18.94ID:9ljzGYTI
>>164 例外を削除も、複数戻り値もSwiftは採用してるよ。

言語毎に色んな特徴は有るだろうけど、使用者にどんなメリットが有るかが一番大事だろうな。
どんなターゲットを対象にしているかとか。
0171デフォルトの名無しさん
垢版 |
2014/07/19(土) 15:06:03.17ID:9uryi8HE
>>169
そうそう、だから自分がいいと思う言語を使えばいいだけ、なのに、すごい低レベルなところで煽るやつは何を考えているのかと思う、が、いちいち相手にするレベルに至っていないのでスルーしとく
0176デフォルトの名無しさん
垢版 |
2014/07/21(月) 16:07:42.61ID:oivZnao6
Cだとアロー演算子って呼んでたけど
Goはチャネルオペレータって呼んでるな。
0179デフォルトの名無しさん
垢版 |
2014/07/21(月) 21:54:45.83ID:Syim72mM
>>178
ググれば出るだろボケナス
0181デフォルトの名無しさん
垢版 |
2014/07/21(月) 22:30:59.47ID:F1AofNqF
APLのindex generatorのιだろ。
ぐぐらびりてぃの悪さでは定評がある知識だと思うが。
0182デフォルトの名無しさん
垢版 |
2014/07/21(月) 22:34:55.66ID:DpfIQ25M
iota の先頭文字は i で母音だから
不定冠詞を付けるときは
a じゃなくて an を付ける必要がある
つまり an iota としなければならない
0184デフォルトの名無しさん
垢版 |
2014/07/22(火) 00:52:49.93ID:Tqhjijck
>>181
APLのindex generatorよくわからんが、そんなところから来ていたのか〜
atoi, itoa系だとばかり思ってたわw
ありがとね
0186デフォルトの名無しさん
垢版 |
2014/07/22(火) 09:46:04.54ID:CpNP7/Sp
20行程度で2MB行くとかクソだな
200行で2GB使うのか?
ばかだろw
これじゃVPSでもクラウドでもすぐ容量いっぱいで使い物にならねえよ
0188デフォルトの名無しさん
垢版 |
2014/07/22(火) 09:51:44.86ID:gLVnM0Vt
printfもでかいけどprintfを100回呼んでも100倍のサイズにはならない
判り易く喩えるとこういうことです
0191デフォルトの名無しさん
垢版 |
2014/07/22(火) 10:27:27.42ID:yyU5/kBu
1500行のプログラムで3MBくらいだな
1万行で何書くのか知らんけど、似たような呼び出しだと仮定すると
3MBくらいか
0195デフォルトの名無しさん
垢版 |
2014/07/22(火) 20:32:55.34ID:r3GUCDVw
自分で書いたコード400行、標準ライブラリ10個、外部ライブラリ4個で4MBぐらいだったわ
0200デフォルトの名無しさん
垢版 |
2014/07/23(水) 12:38:54.74ID:WJZjj5QG
golang.jpみたいに一人でも全部翻訳はできてるのに
golang-jp.org全然翻訳進まんな
名前ばかりの幽霊部員しかいないのか
0202デフォルトの名無しさん
垢版 |
2014/07/23(水) 22:03:23.63ID:VI4LJie1
ろくに翻訳活動もしてないのに肩書きとして「golang-ja.orgで翻訳活動をしております」って名乗るのはいかがなものかな
0203デフォルトの名無しさん
垢版 |
2014/07/23(水) 23:42:01.46ID:VI4LJie1
goは簡単なバッチ処理をするようなプログラムを作るのには向いてないね
ビルド後のファイルサイズが気になる
0204デフォルトの名無しさん
垢版 |
2014/07/24(木) 00:30:01.41ID:znT0d1Bl
たしかに気にはなるけど
採用されない理由がそれだけのプロジェクトも想像できない
0205デフォルトの名無しさん
垢版 |
2014/07/24(木) 11:10:30.02ID:Ye3LEDYl
>>203
むしろバッチ処理得意じゃないかと思うんだが。
APIを何万回も叩いて結果をDBに格納するみたいなバッチ処理を書いた時に
チャネルを使うと素晴らしく綺麗に並列化できて感動したんだよね。
0206デフォルトの名無しさん
垢版 |
2014/07/24(木) 11:45:59.80ID:lbRXz+ac
>>205
>>203が言ってるのはバッチ処理というより単機能の小さいコマンドみたいなもののことでしょ。
自分らが~/binにたくさんおいてあるbashスクリプトレベルの。

そもそもこのコンパイラは常駐アプリケーションを作るための設計すぎて、実行時間がある程度長くないと無駄なのは事実。
とは言えいい言語だからそういうシンプルな機能を作るためにも使いたい。
使い終わったらプロセスごと落としてくれればいいからGCとかいらないし。
0209デフォルトの名無しさん
垢版 |
2014/07/24(木) 16:17:04.74ID:GSXF8hON
golang.jp を見て見たが、ちょっと最初の構想から外れてるみたいな気がする。
インタプリタみたいな軽量な言語を目指したと言うが、REPLすらないってどう言う事?
サードパーティの物をちらっと見た覚えは有るが、最近目立たないな。

REPLがあれば取り敢えず簡単なスクリプト処理的な物はこなせるけど、いちいちコンパイルGOじゃ面倒臭い。

ジェネリックもいずれ入れると言ってるがもう何年も経つのに入らないってどう言うこと? 設計上無理が有るのでは?
今は色んな面で言語的にはかなり低級に思える。
0214デフォルトの名無しさん
垢版 |
2014/07/24(木) 16:39:29.49ID:r6QGED5m
え?インタプリタはコンパイルしないと思ってるの?phpもrubyもpythonもコンパイルするんだよ?
0215デフォルトの名無しさん
垢版 |
2014/07/24(木) 16:44:21.40ID:GSXF8hON
>>214 広い意味でのインタプリタはそうだけど、そんな事言ったらJavaですらインタプリタと言い出すだろ。

本来の意味のインタプリタは、1行書いたら即実行が本来だよ。
コンパイルしようがどうしようが良いが、書いたら実行。これがインタプリタ。

perlなんかよりREPLの方がよほどまし。
0216デフォルトの名無しさん
垢版 |
2014/07/24(木) 16:46:57.30ID:GSXF8hON
>>214 それに>>212 は全くのコンパイルじゃ無いか。
どこにインタプリタ的な要素が匂うんだ?


例えば、100行位のプログラムを書き始めたとして、>>212はいつ実行出来るんだ?
アホなこと言うな。
0218デフォルトの名無しさん
垢版 |
2014/07/24(木) 17:50:00.05ID:9dmhGPAk
定義的にインタプリタであるかどうかにこだわる意味がわからん。
コンパイルが十分に速くてエディタの支援があれば事実上同じ。
0219デフォルトの名無しさん
垢版 |
2014/07/24(木) 17:59:05.81ID:GSXF8hON
>>218 解らんかな? 例えばインタプリタなら
>>218 と会話的にプログラム出来る。

コンパイル方式だと、>>218の発言を知ってから全ての218の行動を予測しながらプログラムを書かざるを得無い。 どれだけ膨大なプログラムになるかわかるか?

例えば今日台湾の航空機墜落事故のニュースを知ってから、それに関連したプログラムをするのと、
全く知らずに何年も前から予測してプログラムするのでどれだけ大きな差が有るのか解らんかな?
0220デフォルトの名無しさん
垢版 |
2014/07/24(木) 18:05:42.50ID:GSXF8hON
>>218 ま、いいや、golangで1行ずつコンパイルして結果が見えるのならそれで良い。

#今いるディレクトリは?
--gogo
#ls
--
#cd xxx
0223デフォルトの名無しさん
垢版 |
2014/07/24(木) 18:17:36.20ID:FJ9KFXdp
そもそもgoはc++の置き換えを狙ったガッツリコンパイル言語目指してたと思うが
インタプリタの話はどっから出てきたのだろうか。
0224デフォルトの名無しさん
垢版 |
2014/07/24(木) 18:18:07.34ID:hD2YGPYI
読込み -> 中間式生成 -> 実行 -> 結果表示
こういう流れなら中間式がなんであれインタプリタでよくないか
0225デフォルトの名無しさん
垢版 |
2014/07/24(木) 19:31:52.41ID:j9Fzrf/Q
対話式の環境が使いたいならscalaでも使えばいいんじゃねえの?
コンパイルくっそ遅いけど
0226デフォルトの名無しさん
垢版 |
2014/07/24(木) 19:35:29.67ID:eQap2LAf
ClojureとかGroovyとかもJVM系の言語はコンパイルしてから実行するのに凄い時間がかかるな
REPL的な環境使うと捗る
0227デフォルトの名無しさん
垢版 |
2014/07/24(木) 21:13:03.11ID:3xYKvkhO
>>223
http://golang.jp/go_faq
新しく言語を作った理由は?

Go言語は、インタプリタ言語のプログラミングの容易さと、動的型言語の効率、コンパイル言語の静的な型の安全性を併せ持つことを目指しました。
0228デフォルトの名無しさん
垢版 |
2014/07/24(木) 22:11:05.80ID:3xYKvkhO
>>224 Javaは含めたく無いな。 インタプリタは、基本的にソースコードをそのまま配布する物。
配布されたソースを変更すれば即座に実行出来る物。
0229デフォルトの名無しさん
垢版 |
2014/07/24(木) 22:34:04.45ID:xmULRajC
>>219
REPLが備わってる言語だと
1行ずつ試しながらプログラムを書けるのが良いっていう主張なんかな
コンパイル方式だと、ある程度まとまった量を書くまで
プログラムの挙動の確認ができないからダメだと

ちょっと興味あるから良かったらもう少し分かりやすく説明してほしいんだが
0230デフォルトの名無しさん
垢版 |
2014/07/24(木) 23:08:29.15ID:ZKlJlp/g
つまり軽い気持ちでインタプリタという言葉を使ってしまったら
インタプリタに思い入れの有りすぎる人が騒ぎだしたって話か。
0231デフォルトの名無しさん
垢版 |
2014/07/24(木) 23:30:45.74ID:3xYKvkhO
>>229
例えば、
system("ls")
でカレントディレクトリ内のファイルを見て、ファイルが有るのを確認してファイルを読み込むとか。
周りの環境が不確かでも確認しながらコーディングを進めて行くことが出来る。

試行錯誤が入る様な場合には力を発揮する。

パラメータを変えながらのテストプログラムとか。

とは言っても、一般的にREPLが力を発揮するのはコーディング時に結果を確認しながら進めていけることだろうな。 バグの少ないプログラムが書ける。

例 Java REPL
http://calms.hatenablog.com/entry/2014/03/20/215529
0232デフォルトの名無しさん
垢版 |
2014/07/24(木) 23:38:19.65ID:ZKlJlp/g
>>231
お前の言いたいことはよくわかったが残念ながらgoは最初の最初からc++後継のガッツリコンパイル言語だ。
REPLなんて全く意識してない。

そこに書いてあるインタプリタがうんたらかんたらはPythonの手軽さり入れてますよくらいの意味だ。
0233デフォルトの名無しさん
垢版 |
2014/07/25(金) 00:07:36.47ID:VLfrDabm
>>232 C++ ですら、CINTや、LLVM でのREPLが有るのに、なんでやらないんだろう?
言語と同等に重要だと思うけどな。

その前にジェネリックとかやることが山積みで残ってるからかもしれ無いが。
0236デフォルトの名無しさん
垢版 |
2014/07/25(金) 00:49:56.70ID:5ZIqGgab
>>231
>>229だけどありがとう
REPLはいろいろ試せて便利ということですね
コンパイル方式の言語でもREPLがあれば便利だという意見に納得
0237デフォルトの名無しさん
垢版 |
2014/07/25(金) 00:55:19.24ID:5ZIqGgab
>>231
>とは言っても、一般的にREPLが力を発揮するのはコーディング時に結果を確認しながら進めていけることだろうな。 バグの少ないプログラムが書ける。

これに関してはIDEでも出来るからREPLの利点になるかは微妙に思うけど
0238デフォルトの名無しさん
垢版 |
2014/07/25(金) 01:24:46.41ID:WAyDBvXq
そういう事出来るIDEってそんな多くないような
IDEの機能でREPLに近いのはイミディエイトウィンドウとSmalltalkくらいしか思い浮かばない
0243デフォルトの名無しさん
垢版 |
2014/07/26(土) 01:12:14.54ID:gxb4YorG
func a() string {
return "aaa"
}
これをstringかintを返したい場合どういうふうにfunc a() stringの部分を書きなおせばいいのか教えてください
0246デフォルトの名無しさん
垢版 |
2014/07/27(日) 08:52:04.39ID:CwX5MDAY
LLVM Clangは、徹底的にループを排除するからな
元のコードがどんなだか知らんけど
他がやってるループをClangは回してない場合がある
0247デフォルトの名無しさん
垢版 |
2014/07/27(日) 09:13:55.62ID:KUNHptBx
>>246 中にソースが書いて有るよ。
1GBのランダムなデータを3種類の読み方で読んで、00のバイト数をカウントすると言う物。
ループを省略するなんてことは出来なさそう。
0248デフォルトの名無しさん
垢版 |
2014/07/27(日) 09:46:07.39ID:PFdtsvV+
元のコードのここの部分が
for (i=0; i<fsize; i++) {
if (buf[i] == 0x00) cnt++;
}

例えばこんな感じに書いたみたいに展開されるってことじゃないの?
for (i=0,size=fsize/2; i<size;) {
if (buf[i++] == 0x00) cnt++;
if (buf[i++] == 0x00) cnt++;
}
if (fsize%2==1) {
if (buf[i++] == 0x00) cnt++;
}
0251デフォルトの名無しさん
垢版 |
2014/07/29(火) 21:53:04.26ID:yYRcHyEO
・【翻訳】Go言語がダメな理由 | POSTD
http://postd.cc/why-go-is-not-good/
 Goは何も新しいことをしない。
 Goは全てにおいてうまく設計されているとは言えない。
 Goは他のプログラミング言語から退化したものである。
0255デフォルトの名無しさん
垢版 |
2014/07/30(水) 09:20:20.31ID:Nn5HlRg1
Rustはまだ実験段階だから仕方ない。 金が無いとなかなか進まないね。

Dはスポンサー次第だろ。 Facebookが使った。
http://blog.fenrir-inc.com/jp/2014/07/about-d-language.html
トレンド的な話ではウォルター氏を含むD言語プログラマーが Facebook に雇用されてD言語の開発とD言語製アプリケーションに携わっている状態で、
D言語公式カンファレンスの DConf も Facebook 本社を会場として去年から開催されています。

SUNはDTrace として使ってるし、DTraceはAppleでも使ってる。
0257デフォルトの名無しさん
垢版 |
2014/07/30(水) 09:58:39.78ID:oJuXMjZX
D言語のドキュメントは読みにくいから挫折してGo北野に俺が勉強したくなるような余計ななことかくな!
0258デフォルトの名無しさん
垢版 |
2014/07/30(水) 11:40:53.67ID:hbolUbaM
分かりやすい綺麗なコードが書ければプログラム言語なんて何でも良い
ただ、同じ事やるのに色々な表現方法が存在して構文を複雑にしたり
波括弧の位置だの鬱陶しい問題が存在しない方が良い

表現の違いで吐き出したバイナリコードに差が出る言語は
一々最速かつ最良の方法を模索するハメになるので煩わしい
0263デフォルトの名無しさん
垢版 |
2014/07/30(水) 18:58:50.92ID:oDHaBQlk
英語読めないからあれだけど
WindowsだとOSのDLL読めるけど
ユーザーが作ったDLLは使えないんだって?
ならGoでグラフィックをやりたければOpenGLよりDirectXのが楽ということか

WinのOpenglは外部DLLないと古臭いから
0264デフォルトの名無しさん
垢版 |
2014/07/30(水) 21:19:57.41ID:/fpjt/6K
>>255
Facebookってオープンソースに力入れてたっけ?単に自社の便宜のためにDの開発者を取り込んだだけ、ということではなくて?
0268デフォルトの名無しさん
垢版 |
2014/08/04(月) 14:37:29.28ID:HA1hOxHF
func hoge(x, y int) (x, y int) {
return
}
これはダメで

func hoge(x, y int) (int, int){
return x, y
}
これがいい理由がわからない
0271デフォルトの名無しさん
垢版 |
2014/08/04(月) 14:59:51.43ID:NkDV0lbD
> func hoge(x, y int) (x, y int) {
> ...
> }

これ、

./main.go:7: duplicate argument x
./main.go:7: duplicate argument y

ってなる(Go 1.3)
0272デフォルトの名無しさん
垢版 |
2014/08/04(月) 15:04:04.54ID:OYo/E/zd
馬鹿かこいつ
0274デフォルトの名無しさん
垢版 |
2014/08/04(月) 15:25:59.54ID:HA1hOxHF
>>273
戻り値が初期化されるからダメってことなんですね
Named resultは便利なようで冗長的になる可能性もあるってわけですね
メモリも食いそうですね
ありがとうございました
0276デフォルトの名無しさん
垢版 |
2014/08/04(月) 15:48:57.70ID:hivp8MqX
>>274
詳しい人の意見を少し待ったほうがいいんじゃないの?
ダメな理由は素人でも特定できたけど
なんらかのやり方があるかもしれないよ?
0277デフォルトの名無しさん
垢版 |
2014/08/05(火) 17:28:58.12ID:VDc80Yjj
見やすさのために変数を初期化すべきかどうかって問題だろ
goの仕様関係ないやん
0278デフォルトの名無しさん
垢版 |
2014/08/05(火) 17:39:44.90ID:DgDBu3xR
go は全く知らないんだけど、皆の話を聞いてたら、入力の変数名x,yと出力の変数名x,yは別物みたいだね。
つまり同じ名前をつけるバカとは付き合えんと言われてるの?

inout属性をつけられると良いんだけどね。
0279276
垢版 |
2014/08/05(火) 17:59:47.02ID:dd7FVYvi
>>277
いえ、違います。
てか仕様そのものじゃないか。

>>278
いえ違います。
別物ではないから
重複定義でエラーになるんでしょ。

func (x int) (x int) なら
現状だとpseudoで
int x = 0
int x = args["x"]

その内
func () (x=123 int)
などで0以外の初期化子与えたり
func (x int) (x=args["x"] int)
func (x int) (x=args.x int)
func (x int) (x=_x int)
などで引数で初期化とか出来るようになるんじゃないかな
というか既にあるんじゃないのかな
0280デフォルトの名無しさん
垢版 |
2014/08/05(火) 18:07:02.09ID:DgDBu3xR
>>279 変数名in x,y で、out x,yにしたかったんだろ。
でも言語仕様上 in x,y とout x,yのx,yを同じ変数に割り当てられないからエラーになるんだろ。
つまりinと、outは別の変数を使えとしかられてるんじゃ無いの?

言語によってはinout属性を付けると、入力変数に値をセット出来て出力とすることが出来る。
0281デフォルトの名無しさん
垢版 |
2014/08/05(火) 18:10:48.15ID:DgDBu3xR
>>280 簡単に言うと、
func( 1, 2 ) と渡された時に

勝手に 1, 2 を上書きすんなよとしかられてるんだろ?
0284デフォルトの名無しさん
垢版 |
2014/08/05(火) 21:25:46.03ID:3MsCZ4lI
goでguiが作れない
guiライブラリのコミュニティーがない
あっても個人が作ったライブラリがあるだけ
goでguiに未来はない
0288デフォルトの名無しさん
垢版 |
2014/08/05(火) 22:56:03.53ID:q3/M2RFT
もうGoogleは、Android にも言語にも飽きたんだよ。オタクの趣味としてちんたら遊ばせておくつもりだろ。

はた迷惑だよな。
ロボット企業を買いあさってる。日本のSCHAFTも買収された。
0289デフォルトの名無しさん
垢版 |
2014/08/05(火) 23:31:09.30ID:AfbB56Nf
ニュース速報。Goが死亡したことについてGoogleは謝罪会見を行わ
ないとのことです。Goのユーザーからは怒りの声が上がっています。
以上、中継でした。
0290デフォルトの名無しさん
垢版 |
2014/08/06(水) 00:15:13.55ID:q1msYZkC
叩きたくて叩きたくてしょうがない奴が2chというゴキブリホイホイにあつまってくる
お陰でネットが平和にはなるけど
0291デフォルトの名無しさん
垢版 |
2014/08/06(水) 00:15:15.26ID:cxEAgXtb
Goは、システムプログラミング寄りのことをしない人には関係ないし、GAE使わない人にも関係ない。
WebAPIに使おうという人は増えてはいるけどね。
0292デフォルトの名無しさん
垢版 |
2014/08/06(水) 01:31:04.59ID:jlHxWIwY
まだ実験的に使ってる位だろ。 本格的に使えるレベルじゃ無いだろ。
WebAPIだと下手するとJAVAにすら負けるんじゃ無いのか?
0296デフォルトの名無しさん
垢版 |
2014/08/06(水) 08:38:43.95ID:OufmJGiK
この前買ったAsusのM/Bに付いてるユーティリティのセットアップ部分がGo+Walk?で書かれてた
Dos窓の消し方知らん状態で、よく配布出来たなと思うけど
0298デフォルトの名無しさん
垢版 |
2014/08/06(水) 09:30:56.39ID:cxEAgXtb
cloudflareがオープンソースしてるCDNまわりの運用ツールやperconaのMySQLまわりの運用ツールもそうだったか。
まあ、google社内の運用ツール作成者が、cやpythonの代わりにgo使ってるようだが。
0299デフォルトの名無しさん
垢版 |
2014/08/06(水) 10:06:37.78ID:Ew8yVxs4
1.3からNaClもサポートされたよね。
実際使えるようになるのは1.4からだろうけどWebClient側もGoで書くようになるか。
問題はchromeでしか動かないってことだけど
0300デフォルトの名無しさん
垢版 |
2014/08/06(水) 10:49:43.03ID:1n+ZEBWM
NaClはサンドボックス用の実装
1.4はarm NaCl
内容分からず書き込むなよボケナス
Web Client向けじゃねーよクソカス
0301デフォルトの名無しさん
垢版 |
2014/08/06(水) 13:24:50.02ID:zhx39L6I
>>300
どっちかいうとPPAPIを1.3でサポートしてないから、サポートする1.4から本格的に使えるって意味ね。

ビジネスロジックをクライアント側で実装するとなるとjsでは丸見えになるから
NaClでクライアントの一部でも実装できるというのはありな気がするんだけど。
ブラウザをchrome固定にしても構わない社内システムとかね。
0302デフォルトの名無しさん
垢版 |
2014/08/06(水) 13:40:49.32ID:1n+ZEBWM
https://code.google.com/p/go-wiki/wiki/NativeClient
They cannot be run directly in Google Chrome. As such, the NaCl support in Go 1.3 is useful only for running sandboxed environments like the Go Playground.

上記を読めない文盲か?

PPAPIが1.4でサポートされるというソースを出したら全力で謝ろう
0303デフォルトの名無しさん
垢版 |
2014/08/06(水) 15:57:32.29ID:/I6P1gIg
go-wiki
There is ongoing work exploring support for the IRT and PPAPI (3 and 4 in the list) but no definite release target. Perhaps they will be in Go 1.4 but perhaps not.

perhaps not
^^^^^^^^^^
0308デフォルトの名無しさん
垢版 |
2014/08/10(日) 07:28:42.80ID:717mLNhK
いや、悲惨なのはどう見ても右肩下がりなHSPだろ
ゲームを付けないと、クロアチア権利党の略語としてヒットするからだめ
ゲーム以外の追加キーワードは、軒並み更に検索件数が少な過ぎる
0309デフォルトの名無しさん
垢版 |
2014/08/10(日) 09:10:02.35ID:owNP0mOn
いやって何がいやなんだ?
「更に」と書いてるんだからどちらにせよHSPが悲惨だと言ってるに決まってるだろ
0312デフォルトの名無しさん
垢版 |
2014/08/10(日) 17:55:11.34ID:owxd9++q
学習コストが高い言語じゃないから
マイナーでも損した気持ちにあんまならない
0313デフォルトの名無しさん
垢版 |
2014/08/10(日) 18:16:52.00ID:owxd9++q
ただ匿名フィールドやメソッドでしっくりこない部分がいくつか

type foo struct {}
func (f foo) foobar() {}
func (f *foo) pfoobar() {}

type bar struct {
foo
}

これらのメソッドを

bar.foobar(bar)
で呼び出せたり
var nilptr *foo; foo.pfoobar() // 空なのに…
で呼び出せたりするのがなんか気持ち悪い
0314デフォルトの名無しさん
垢版 |
2014/08/10(日) 18:36:30.54ID:8jOhhL8e
>>313 バグじゃ無いの? 確かに気持ち悪いし理解できない。
何で
barやfooのメソッドになるんだ?

お手伝いさん雇ったらいつの間にか家ごと乗っ取られてたと言う感じ。
0315デフォルトの名無しさん
垢版 |
2014/08/10(日) 18:53:42.45ID:owxd9++q
>>314
ひとつめはメソッド式っていう型から直接メソッドを取り出せるリファレンスに載ってる仕様
ふたつめはfoo.pfoobar()→nilptr.pfoobar()の間違いだすまん
0316デフォルトの名無しさん
垢版 |
2014/08/10(日) 19:17:22.63ID:owxd9++q
>>313
一つ目の引数に型入れてしまってる
コードそのまま張る
スレ汚し申し訳ない

package main

type foo struct {}
func (f foo) foobar() {}
func (f *foo) pfoobar() {}

type bar struct {
foo
}

func main() {
b := bar{}
bar.foobar(b)

var nilptr *foo // 空なのに…
nilptr.pfoobar()
}
0317デフォルトの名無しさん
垢版 |
2014/08/10(日) 19:18:14.11ID:8jOhhL8e
fooのメソッドをクロージャの外に書くことも出来るようにしたと言うことなのかな?
lazy 的な使い方だからそう考えると理解出来る
0320デフォルトの名無しさん
垢版 |
2014/08/29(金) 15:46:46.57ID:pefvZeNv
Goを書く上でおすすめのEditorって何?
atom使おうとしたら2MBのファイル制限があってtagsファイルが読み込めなくてがっかりした。

型を解釈してメソッドやメンバ変数がうまく補完されるEditorがほしいです。
0321デフォルトの名無しさん
垢版 |
2014/08/29(金) 16:06:57.25ID:pefvZeNv
//(1)a,_:=にすればエラーにならない
a:=func()(int,error){ return 0,fmt.Errorf("aaaaaa")}();
fmt.Println(a)
//(2)これはエラーにならない
for i:=range []string{"a","b","c","d"} {
fmt.Println(i)
}

(1)はエラーになるのはいいことだと思うけど、
(2)だとエラーにならずにindex値しか取得できない。
(2)も(1)と同様返って来たタプルの数に合わせないとエラーになるようにして欲しくない?
この仕様って何か理由あるの?
0322デフォルトの名無しさん
垢版 |
2014/08/29(金) 17:48:22.16ID:JF5lqIUA
Go は何故ジェネリックが出来ないんだろう、ずっとやるやると言ってて出来ないのは何か理由が有るんだろ?

ジェネリックが有るなしでは雲泥の差が有るからな
0325デフォルトの名無しさん
垢版 |
2014/09/01(月) 09:42:08.95ID:Aoi0Spsz
>> Wikipedia を見ると
>型の継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しないことも特徴である。

っと書いてるけど特徴と言うよりも欠点だろ。 型の継承が出来ないと言う事は型の拡張/Extentionも出来ないんだろうな
0328デフォルトの名無しさん
垢版 |
2014/09/01(月) 15:58:36.52ID:SaUWCY70
インタフェースで良いじゃん
既に継承はレガシー化しつつある
Cジジィと言ってた世代がもうすぐ自分がジジィ呼ばわりされるのさ
0329デフォルトの名無しさん
垢版 |
2014/09/03(水) 22:51:40.57ID:OjPHMTTg
すみません、質問させてください。

Go言語で動的に読み込めるようなライブラリを作りたく思っています。
どのようにすれば、ライブラリ単体のコンパイルができるでしょうか?
また、作ったライブラリをどのようにすれば動的にロードする事ができるでしょうか?
よろしくお願いします。
0330デフォルトの名無しさん
垢版 |
2014/09/08(月) 19:26:19.55ID:GB5qWry9
無理
0331デフォルトの名無しさん
垢版 |
2014/09/08(月) 19:47:42.94ID:48pG8dL/
>>330
そうっぽいですね、質問後もいろいろ調べてたのですが、
Cとかで作ったライブラリは呼べるようですがGoだけでは無理っぽい・・・
ぜひライブラリも作れるようになってほしいですね
ありがとうございました
0339デフォルトの名無しさん
垢版 |
2014/09/29(月) 12:08:15.08ID:EIANdszU
golintが動かないと勘違いしていた
golintはgo testをカバーしてなかっただけ
golintとgo test両方実行しないと意味ねえな
0340デフォルトの名無しさん
垢版 |
2014/10/05(日) 20:59:06.62ID:zjAXSCyt
Append(sliceA, sliceB[x:xx]...)で参照先の配列を領域確保1発でコピー出来るなら
MakeでCap指定した方が良いCopyの使いどころって無いよね?
0341デフォルトの名無しさん
垢版 |
2014/10/12(日) 13:22:57.12ID:e6aIROEn
vim-goとvim-go-extraどっちを使おうか迷った僕がvim-goを選んだ理由

・vim-goの開発が活発で将来性がある。vim-go-extraは進化しないと思った。
・利用者が多いから。
0342デフォルトの名無しさん
垢版 |
2014/10/12(日) 14:01:02.40ID:e6aIROEn
vim-go-extraはgolangに入ってたものを配布しているだけのようなものだからそれをいじっていくというスタイルではないと思った
0344デフォルトの名無しさん
垢版 |
2014/11/02(日) 10:09:47.13ID:x5iq96Qv
変数無しRangeの使い道ってどんな時だろ
むしろforやifみたいに初期化文が置けるとスッキリするんだけど
0345デフォルトの名無しさん
垢版 |
2014/11/02(日) 11:17:59.44ID:r4spo6v1
1つ質問いいですか!
go言語ってコンパイルが早くて気に入ってるんだけど、
けど、なぜか突然コンパイルやテストが異常に遅くなったりする・・・
これの原因ってなんですか??
0348デフォルトの名無しさん
垢版 |
2014/11/02(日) 21:33:47.45ID:BYDmQ72k
それより先にChromeOSに飲み込まれる予感
でGoはGAEによるwebアプリとして、という形で置き換わ…らないかな…
0349デフォルトの名無しさん
垢版 |
2014/11/02(日) 22:09:45.10ID:uP+hCO1v
Javaは難しすぎるし文字列の連結も"a" + "b"みたいに+で書くのはダメでなんちゃらビルダーを使えとかでJava知らないとわかんないことも覚えないといけないからきつい
AndroidアプリはGo出かけるようにするべきだ
そしてJavaを切り捨てろ
0352デフォルトの名無しさん
垢版 |
2014/11/06(木) 09:31:48.41ID:Yj3faNE/
goimportを11/9までに変えろってツイートのタイムラインで流れてきたけどどうやって変えるの?
.bashrcとかでpathを設定しろってこと?そんな設定した覚え無いよ
0353デフォルトの名無しさん
垢版 |
2014/11/06(木) 09:40:38.83ID:aunNruia
書いてあるやんけ…

> Updating
>
> Any import path in any Go source file beginning with “code.google.com/p/go.”
> should change to begin with “golang.org/x/”.
>
> On Linux, OS X, and other Unix systems, this command updates all Go source
> files in the current directory and all subdirectories, so running it in your
> GOPATH workspace root should suffice to update all your source code:
>
> sed -i .orig 's|"code\.google\.com/p/go\.|"golang.org/x/|' \
> $(find . -name '*.go')
0354デフォルトの名無しさん
垢版 |
2014/11/06(木) 10:14:37.36ID:Yj3faNE/
英語わかりません><
ソースコードって自分が書いたソースコードだけですか?
それともgo getでインストールしたのとか/usr/local/go以下のも全部ですか?
0356デフォルトの名無しさん
垢版 |
2014/11/07(金) 10:31:39.22ID:s6Ia4x9k
そうか、ARTはLLVMだから、高速化のみならず、ここからGoやPythonまで巻き込んでいく可能性もあるのか
0358デフォルトの名無しさん
垢版 |
2014/11/11(火) 12:41:50.08ID:wdqJ9aU+
Happy birthday to you,
Happy birthday to you,
Happy birthday, dear golang〜♪
Happy birthday to you〜♪
0359デフォルトの名無しさん
垢版 |
2014/11/11(火) 13:33:55.75ID:7vWNWhS8
見上げて golang 夜の星を
小さな星の 小さな光が
ささやかな幸せを うたってる
0363デフォルトの名無しさん
垢版 |
2014/11/16(日) 09:02:44.60ID:DyeXwdqD
今、TCPクライアントを書いているんですが、
テストで、サーバー側でCloseされたnet.ConnにWriteしても、
1回目は何のエラーも返さないんですが、なぜだか分かる人いますか?
2回目でbroken pipeと言われます。
0366デフォルトの名無しさん
垢版 |
2014/11/17(月) 17:21:35.06ID:zuuyG41U
そろそろGoのイディオムに沿ったリファクタリング本が欲しい
今までの物でも通じなくはないけど違和感がある
0367デフォルトの名無しさん
垢版 |
2014/11/17(月) 21:09:13.40ID:brk9wiVx
本がないと駄目とか馬鹿も大概にしろ
0369デフォルトの名無しさん
垢版 |
2014/11/17(月) 22:40:13.14ID:VgYWB20P
少数言語の存在を目障りに感じる奴って、脳のどこが壊れるとそうなるんだろうねw
0371デフォルトの名無しさん
垢版 |
2014/11/17(月) 22:52:12.08ID:Ogg/6z+g
本は俺もほしいなぁ
ってか、本とかまともにないと絶対普及しないと思うし。
誰か本書いてくれないかなぁ(チラチラ
0372デフォルトの名無しさん
垢版 |
2014/11/17(月) 23:10:56.23ID:ppTtjJs6
うるせー社員
Googleマップで見つけたチンパンジーとGo言語しゃべっとけよ、アホ
0375デフォルトの名無しさん
垢版 |
2014/11/18(火) 11:45:48.09ID:WPotnA1T
インタフェースは遅くなると思って使わないようにしてたが
試しに使ってみたら便利すぎてフイタw
0377デフォルトの名無しさん
垢版 |
2014/11/20(木) 17:31:22.49ID:YC7+DKYP
男「よろしくお願いします」
面接官「で、君は何の言語ができるの?」
男「Goができます」
面接官「他には?」
男「Goだけです。Go一筋なんです」
面接官「面接を終了します。結果は後日
お知らせします。ありがとうございました」
0378デフォルトの名無しさん
垢版 |
2014/11/20(木) 17:40:23.96ID:YC7+DKYP
男「よろしくお願いします」
面接官「で、君は何の言語ができるの?」
男「Goができます」
面接官「え、囲碁は言語じゃないですよ」
男「囲碁じゃなくてGoなんです」
面接官「はあ? 言ってることがわかりません。面接を終了します。
結果は後日お知らせします。ありがとうございました」
0380デフォルトの名無しさん
垢版 |
2014/11/20(木) 17:50:59.42ID:YC7+DKYP
男「OK, I'm ready.」
面接官「By the way, what languages could you use」
男「I can use Go.」
面接官「What's!?」
男「Go!」
面接官「What are you saying? Where should we go to?」
男「Go!」
面接官「Oh, what a shitting guy! Get out of here!」
0381デフォルトの名無しさん
垢版 |
2014/11/20(木) 17:58:59.99ID:B4HwyTzw
        (~)
      γ´⌒`ヽ
      {i:i:i:i:i:i:i:i:}       
      /´⌒ヽ  )     ツマンネw
     (   __ )つ ⌒゚
' '''"''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ゙ ゚ ゙''` `
0389デフォルトの名無しさん
垢版 |
2014/11/21(金) 10:22:44.31ID:OG/Y7Xo1
[仕事量]
PHP>Go
[利用者]
PHP>Go
[実績]
PHP>Go

トリプルコンボでPHPerの勝ち
Goferもっと頑張りたまえ
0391デフォルトの名無しさん
垢版 |
2014/11/21(金) 12:16:17.06ID:RKwctBBa
カンマ入り数値からカンマ外すのは、これ以外に無い?
strings.Replace("15,180,000", ",", "", -1))
0396デフォルトの名無しさん
垢版 |
2014/12/02(火) 05:14:09.00ID:Mms1FSAQ
インストールしようとしてググってたら、
公式だとtar落として自分で展開してpath通せって書いてあるんだけど
EPEL参照でyumからインスコ出来るっぽい
公式でそっちにしないのは、この方法だとなんか不都合あるんだろうか
0397デフォルトの名無しさん
垢版 |
2014/12/02(火) 07:38:42.44ID:vquYws+a
今は知らないが、俺が apt で入れたときは
go get でシステム領域を汚そうとしたから止めた。
0398デフォルトの名無しさん
垢版 |
2014/12/02(火) 18:04:09.77ID:Mms1FSAQ
>>397
それって使わなくなった時に削除するのがめんどいってのがデメリットなのかな
アップデートとかも全部yumでやるから別にいいかなぁ…
どもども
0399デフォルトの名無しさん
垢版 |
2014/12/03(水) 03:59:06.16ID:xemfXL8Z
yumからのインスコで使うことにしたけど、
一個めんどくさい点があった
GOROOTを設定しないとbuildとか出来ない
pathにバージョンとか入ってるわけじゃないので
バージョンアップするたびに環境変数修正ってのはなさそうだけど
0400デフォルトの名無しさん
垢版 |
2014/12/04(木) 19:17:39.60ID:FmXLQYZZ
公式はepelじゃないんだから妥当だと思う。
でないとepel自身がパッケージ作れんがな。
0401デフォルトの名無しさん
垢版 |
2014/12/08(月) 01:06:16.96ID:jJwEDCVJ
AngoIMEで書いているで

スマフォでさくさく並列処理楽ちんプログラム書けるとか

BPS時代がきたわ
問題はJKが隣にいないことやw
0404デフォルトの名無しさん
垢版 |
2014/12/10(水) 22:15:28.40ID:3ZzrTcyc
ttp://go-tour-jp.appspot.com/#37

--------------------------------
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"])
}
--------------------------------

一行加えたら、
cannot assign to m["Bell Labs"].Lat
ってコケるんだけど
mapって別に参照専用ってわけでもない連想配列ですよね?
なんでコケるんでしょうかこれ…
0406デフォルトの名無しさん
垢版 |
2014/12/10(水) 22:47:12.63ID:3ZzrTcyc
>>405
私の認識や手順が違うとかじゃなく、ほんとにそのままでは出来ないんですね
でもwork-aroundって書いてるからそのうち直す的な感じなのかな
2年前ってのがあれですがw

ともあれ、ありがとうございます。
0407デフォルトの名無しさん
垢版 |
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で表示されないんですか?
0409デフォルトの名無しさん
垢版 |
2014/12/13(土) 12:01:31.39ID:BVSGhnq7
>>404
structは値型だからね
m["unko"]はmに格納されてるVertexのコピーが返される
これに修正加えても反映されないよーっていうエラー
だからそう言う書き方がしたいなら
map[string]*Vertex
って宣言するといい
0410名無しさん@そうだ選挙に行こう
垢版 |
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に関しては個人的に全部これでいいんじゃないかなと思ってしまうのですが
リファレンス型(ポインタ型?)を使うデメリットってあるんでしょうか。
自分で思いつくのは、
           値                リファレンス
メリット       ?               アドレス情報にしかメモリを使わない
デメリット    コピー分メモリを食う     ソースがやや煩雑に

とう感じなのですが…
0411名無しさん@そうだ選挙に行こう
垢版 |
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

とかするのも本末転倒の様な気が
0412名無しさん@そうだ選挙に行こう
垢版 |
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という感じなのかな…
0413名無しさん@そうだ選挙に行こう
垢版 |
2014/12/13(土) 14:43:59.47ID:BVSGhnq7
>>410
小さい構造体とかプリミティブなやつはポインタを取るより値渡しの方が速いって読んだことある
(結構公式な文書だったと思うんだけどどこだったか忘れた。すまん)
だからどっちかいいかは使い方によるのかもしれない

>>412
sliceは参照型だからね
それ自体でポインタみたいなもんだから直でいける
0415デフォルトの名無しさん
垢版 |
2014/12/29(月) 23:22:29.55ID:QuoLDkEA
高階関数ってリフレクションしないと駄目っぽいな
せっかく関数が第一級オブジェクトなのに何か勿体ない
0418デフォルトの名無しさん
垢版 |
2015/01/06(火) 21:00:48.30ID:h8AkEaym
誰でもいいから本出してほしい
多少高くてもいいから。できれば一人でなく複数人
0423デフォルトの名無しさん
垢版 |
2015/01/08(木) 12:15:26.41ID:r59ZtkkO
配列の最高値とインデックスを返すような多値関数から
最高値だけをAppendしたい場合、一旦変数に受けないと無理?
0425デフォルトの名無しさん
垢版 |
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)
}
0428デフォルトの名無しさん
垢版 |
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
こうなるんですが
0429デフォルトの名無しさん
垢版 |
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()
}
0433デフォルトの名無しさん
垢版 |
2015/05/27(水) 08:44:30.80ID:CaoeGQX/
main関数を他の関数の上に持っていくか下に持っていくか迷ってるんだけど
ルールがあったりする?
0436デフォルトの名無しさん
垢版 |
2015/06/05(金) 22:59:12.97ID:kU15dp2l
Cとか書いた事も無いので何で後ろに有るのか不思議に思ってたけど
ググってスッキリした
0439デフォルトの名無しさん
垢版 |
2015/06/11(木) 20:17:20.73ID:7zT8SS54
go build はカレントディレクトリに実行ファイルを生成
go install は go build に加えて実行ファイルをGOBINに移動させる

って理解であってる?
0440デフォルトの名無しさん
垢版 |
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がクライアントサイドで動くかも?
0443デフォルトの名無しさん
垢版 |
2015/06/19(金) 16:59:13.37ID:fpEnerGj
サーバサイドアプリを作ってるんですが、
ファイルの変更を検出して今のプロセスを殺して go run XXX.go を再実行してくれる良いツールないでしょうか?

Ctrl+c して go run XXXX.go とか地味にイライラする
0445デフォルトの名無しさん
垢版 |
2015/10/31(土) 18:57:33.63ID:ELtLmf7b
DLL作れるようになったのかと思ったらWindowsじゃサポートされてないのね
0449447
垢版 |
2015/12/02(水) 10:15:23.48ID:I9gRsCT5
>>448
ありがとうございました。
0452デフォルトの名無しさん
垢版 |
2015/12/04(金) 13:21:31.35ID:hYxOV08j
Rails登場前のRubyくらいの知名度かな
非エンジニアなクライアントにgolangもやってます、と伝えても初耳って人が多いね
技術者ならだいたい聞いたことはあるって帰ってくるけど

もっと流行っても良いんじゃないかとは思うけど、ぐぐれば情報が十分ある程度には使われてるし不自由な状況ではないんだよな
0456デフォルトの名無しさん
垢版 |
2015/12/25(金) 02:25:51.96ID:y60VPA7n
goは外部ツール充実してっからどのエディタでも同じレベルで快適だよ。だいたいgo用のパッケージかプラグインあるでしょ。だから好きなエディタ使え
0457デフォルトの名無しさん
垢版 |
2015/12/31(木) 20:19:55.18ID:BO+mMVFR
>> 455

IntelliJがいいよ。
はてなの中の人もオススメしてた。
0458デフォルトの名無しさん
垢版 |
2015/12/31(木) 20:20:32.48ID:BO+mMVFR
上のレス >> 454 だった
0460デフォルトの名無しさん
垢版 |
2016/01/01(金) 13:12:47.05ID:E/hak+Py
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !ll
0461デフォルトの名無しさん
垢版 |
2016/01/02(土) 15:11:34.83ID:dDeNCcj5
・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

消費税ですね判ります
0462デフォルトの名無しさん
垢版 |
2016/01/06(水) 23:14:14.44ID:4CIgSJD1
オライリーから本出るね
0465デフォルトの名無しさん
垢版 |
2016/01/07(木) 12:35:59.31ID:N5HH13xV
英語版だと5ドルで買えるから英語版読んだら。
0466デフォルトの名無しさん
垢版 |
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割方データベースだろ、って状態ではこんな感じでしょうかね
0467デフォルトの名無しさん
垢版 |
2016/01/13(水) 11:46:07.30ID:EwraTGVM
Win10使ってる時点でお察し
0468デフォルトの名無しさん
垢版 |
2016/01/13(水) 12:08:33.96ID:uMvtIS1u
横からだけどこういう比較するときはVirtualBoxあたりでLinux環境立てたほうが良いんかね?
0469デフォルトの名無しさん
垢版 |
2016/01/13(水) 14:35:53.26ID:CipOufW1
Go「Linuxなら…本気出す」

別の場所でちょい古のDebianで試してみた所
(1)PHP 463リクエスト/分 129msec/回
(2)Go 410リクエスト/分 145msec/回
やっぱりGoの方がわずかに遅いっぽい…
0470デフォルトの名無しさん
垢版 |
2016/01/13(水) 14:58:45.80ID:CipOufW1
PasteBinに貼って置くので「ここやがな」てのが有れば教えてくれください

ttp://pastebin.com/kQBFhVQp
ttp://pastebin.com/6bACps6v
0471デフォルトの名無しさん
垢版 |
2016/01/13(水) 15:54:22.06ID:EwraTGVM
糞はfmtじゃね
0472デフォルトの名無しさん
垢版 |
2016/01/13(水) 17:13:31.80ID:jmhOlm9C
part1 て....人気ないの?それとも2ch に書き込むような品性下劣な人間が少ないってこと?
0473デフォルトの名無しさん
垢版 |
2016/01/13(水) 17:23:19.96ID:7cbOl3Dp
Tiobe だと 50位以内に入ってないぞ
まあキッシュイーターが群がるような代物でもないけど
0474デフォルトの名無しさん
垢版 |
2016/01/13(水) 18:05:20.91ID:EwraTGVM
>>472
前にも Go スレは何度か建ってたのでこれが part1 というのは間違い
0475デフォルトの名無しさん
垢版 |
2016/01/13(水) 19:30:58.60ID:cjoN9klk
言語仕様が安定してるから話すことないとかかな。
Swiftなんかガンガン変更しまくりで試行錯誤感が半端ない。
goにジェネリクスが付いたらまた変わるのかも。
正直メタプログラミングが弱いのが辛い。ちょっとしたツール系を作るのはいいけど、
Webアプリをこれで作りたいとあんまり思わないだよなぁ
0478デフォルトの名無しさん
垢版 |
2016/01/14(木) 03:24:09.60ID:byr4bFjT
>>475
webアプリではないけど、GAE/goをモバイルバックエンドに使ったらスケール悩まず書けて素敵なんだけどな
最近ならSPAでも便利だろう
小規模サービスなんで恐縮だが個人的には安く上がってると思ってる

ただそういう向きで価値見出す人はすでにAWSに取られちゃってる印象だよね
Datastoreを高いとは言わないけど落とし穴が多いとは思うし

goでwebやるならGAEも是非とは言いたい
0479デフォルトの名無しさん
垢版 |
2016/01/14(木) 03:40:41.70ID:UUuhE8Rb
>>470
自己メモレス
Fprintf(w, "書式", 変数)をやめる
Fprint(w, r.a + ":" + r.b ...
その場で一度に文字列連結、にすると2%くらい速くなる模様ですぞ
こうするとやってることはPHPとほとんど同一で、差も微粒子レベルで存在になるかな
0480デフォルトの名無しさん
垢版 |
2016/01/14(木) 10:38:57.14ID:YBLBbkKl
>>478
手軽にwebAPIサーバーが書けるフレームワークって何が便利なの?
echo?gin?そろそろデファクトスタンダードが出てほしい。
最近Elixir+phonix触ってるんだけど、エラー時にプロセス再起動する機能が組み込んであるのが便利そう。
goでデーモン書くのって決まりきった書き方もないみたいだし、
いろいろ下回りを自前で準備する感じがするんだけど、、、
0481デフォルトの名無しさん
垢版 |
2016/01/14(木) 19:16:39.15ID:MVoyv7BA
>>479
Fprintf も止めればもっと速くなる
0486デフォルトの名無しさん
垢版 |
2016/01/25(月) 00:44:23.45ID:MxjMVzG6
Goで素数判定をエラトステネスのふるいにして書いてみたけどrubyのprimeライブラリより遅かった
Goってあんまり速くないの?教えてエロい人
0488デフォルトの名無しさん
垢版 |
2016/01/25(月) 01:16:17.48ID:MxjMVzG6
>>487
バージョンは1.5
コードは俺のが遅いのかまともに書いてる人のでも遅いのかが気になってるだけだから載せるまでもないかなと思ってる
0489デフォルトの名無しさん
垢版 |
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
0490デフォルトの名無しさん
垢版 |
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-
0491デフォルトの名無しさん
垢版 |
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 のソースコードを見てみる
0492デフォルトの名無しさん
垢版 |
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 までの素数を全部計算してからチェックしたら遅いわな
0493デフォルトの名無しさん
垢版 |
2016/01/27(水) 00:44:58.41ID:YbPGx/2n
>>492
よく考えたらprimeかどうかだけならそのifないと圧倒的に効率悪かったな
助かったサンクス
0496デフォルトの名無しさん
垢版 |
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 のが早かったりする。
一体どうやったらこんなに速くなるんだ・・・
0498デフォルトの名無しさん
垢版 |
2016/01/27(水) 23:10:29.76ID:qL6rtn4g
どれだけ高度なコンパイラを使おうとアルゴリズムがダメならインタプリタに負けるって事がはっきりわかんだね
0500デフォルトの名無しさん
垢版 |
2016/01/30(土) 14:11:30.69ID:VBtK9+ST
>>499
細かいところだがサンクス
ちなみにどれぐらい速度変わった?
今出先で調べられないんで気になる
0502デフォルトの名無しさん
垢版 |
2016/02/03(水) 01:00:13.99ID:RekMB9Ax
goは言語仕様が絞られて素敵だけど、
いざ使うとなるとやっぱりメタプログラミングに弱いのが辛い。
リフレクションも使いづらいし、ジェネリクスがほしい。
せめてelxirのマクロみたいな機能でもほしい。
0504デフォルトの名無しさん
垢版 |
2016/02/03(水) 19:27:02.90ID:8oEH7nQt
     ,_---~~~~~----._    
 _,,_,*^____   _____``*g*\"*,
/ __/ /'   ^. /   \ ^@q  f
[ @f | @))  | | @))  l 0 _/ 
\`/  \~____ / __ \_____/  \ 
 |      _l__l_      I 
 }     [______]      I 
 ]      | | |      |  お年寄り向け言語に文句言うな
 ]       ~ ~       | 
 |              | 
  |              |
0507デフォルトの名無しさん
垢版 |
2016/02/04(木) 19:16:26.71ID:qHo6spb8
go buildで最適化オプションないよね。

他言語の最適化おプチョンって何してるかわからんけど(デバッグ機能とか削ってんの?)、
実はgoってもう少し早くなるんじゃないかと思うんだが。
0510デフォルトの名無しさん
垢版 |
2016/02/18(木) 07:25:41.93ID:R9/9Yxv0
go 1.6 age
ttps://blog.golang.org/go1.6
0511デフォルトの名無しさん
垢版 |
2016/02/18(木) 17:06:46.52ID:45GMtAZP
1.6は少し難産だったかな。
0512デフォルトの名無しさん
垢版 |
2016/02/25(木) 14:07:18.05ID:1iIBqXg3
Goってサンプルコード見た感じ
プロトタイプベースの動的型付けでJavaScriptみたいに見えるけど
ぜんぜん違う?
0514デフォルトの名無しさん
垢版 |
2016/02/26(金) 02:02:53.28ID:xrOnn7Vq
>>511
一番すごい変更はvendoringかな。
コンパイル速度も速いままだし。

あと開発環境はvisualStudioCodeのgoサポートが一番いい気がするんだけどどう?
debugが一応スタックトレースくらいは見れるから
code readlingしやすくなったかも
0517デフォルトの名無しさん
垢版 |
2016/02/27(土) 13:25:33.79ID:kW+aRgio
>>516
vimは環境構築がよくわからなくて使いこなせない。
一から構築するとしてどこみりゃいいの?
0519デフォルトの名無しさん
垢版 |
2016/03/01(火) 01:00:37.90ID:29/rUB4E
for r := range "よろしく" {
fmt.Printf("<%c>¥n",r)
}

と、書くと実際にはrに入るのはindexなので期待通りに動きません
goにおいて多値を帰す場合は受け取り側もその数分用意しなくてはいけない
のが仕様のはずですが、
これは組み込みの機能なので対象外の動作です。
せめてrにはvalueが入るのが基本動作なら良かったんですが
このような挙動なのにはなにか理由があるんでしょうか?
教えて下さい
0520デフォルトの名無しさん
垢版 |
2016/03/01(火) 07:46:36.94ID:6qCWzYt3
文字列がインデックス付きデータだからでしょ。

_, r := range "よろしく"

では駄目なの?
0521デフォルトの名無しさん
垢版 |
2016/03/02(水) 02:02:01.07ID:O+5v5XDS
>>520

いえ、聞きたいのは
rangeの機能が通常のGoとしての関数の仕様と
異なる動作にしたのはどんな理由があってのことなのかと。

関数がエラーを含んだ多値を返すことを考慮して受け取り側は常に何個の返り値が返るか
意識することが必須ですが、
rangeは2つめの返り値を'_'で受取る必要が
なくても唯一動くことが許されていますよね
0522デフォルトの名無しさん
垢版 |
2016/03/02(水) 02:36:27.86ID:KGp7/CHI
そもそもfor文なんだからインデックスだけ使う場合はそういう表記でも違和感なくね?と思うんですが
0524デフォルトの名無しさん
垢版 |
2016/03/02(水) 07:57:52.01ID:WtpIOuzZ
>>521
型アサーションも第二返り値を付けると失敗時に panic せずに失敗したことを真偽値で返すし、
開発者はそうすることで利便性が上回ると判断したんでしょ。
0525デフォルトの名無しさん
垢版 |
2016/03/02(水) 17:47:47.86ID:O+5v5XDS
>>524
あっ型アサーションもそういう挙動だったですね。
失念してました。
でもrangeで多値返却の省略可能な構文はメリットが思いつかなくないですか?
0526デフォルトの名無しさん
垢版 |
2016/03/02(水) 19:29:42.93ID:LM//BLJD
>>525
型アサーションだけでなく comma OK 構文全部だね。

>rangeで多値返却の省略可能な構文はメリットが思いつかなくないですか
型アサーションの挙動を見るに、省略してると言うより返り値の数によって別の処理を呼び出してる感じだけど、
まあ、パターンを覚えてしまえば余計なもの書かなくて済んで楽だよ。
0527デフォルトの名無しさん
垢版 |
2016/03/06(日) 23:04:28.69ID:b6Djrwpa
Goで使われたものでよく使ってるものとか面白いものとかないですか?
俺がよく使うのはghqです。

ghq : Manage remote repository clones

とりあえず試しにgit cloneするのに便利。後で迷わないし。
pecoと組み合わせで使っています
0528デフォルトの名無しさん
垢版 |
2016/03/08(火) 07:20:41.16ID:UEJ8DCRQ
仕事で使う使い捨てツールはgoで書いてるよ
rubyとかで書くと処理遅いから。
0535デフォルトの名無しさん
垢版 |
2016/03/12(土) 14:48:41.88ID:SnyNHJuk
よく言われるのは、サーバーサイドでシングルバイナリのデプロイが楽とか。
unix上では、etcdやdockerコマンドみたいなところで使われてるよね。
GCもどんどん進化してるから、データストア的な大量メモリを扱うデーモンにも使えるようになってきてる。
0538デフォルトの名無しさん
垢版 |
2016/03/15(火) 22:07:51.01ID:vgWvBE4N
4月にも初心者向けの本出るのね
0539デフォルトの名無しさん
垢版 |
2016/03/16(水) 10:59:19.14ID:Tb17X3fe
だれかaltGo作ってくんないかな。
Goのエコシステムは最高だから、あとはもっとメタプログラミング強くしてほしい。
ジェネリクス付けて。

とTypeScript触りながら思いました。
0543デフォルトの名無しさん
垢版 |
2016/04/05(火) 22:44:14.08ID:mDmXAcnH
goってあんまり言語仕様が変化しないイメージだから
本は作りやすそう。
goの今後の予定ってドコに書いてるんです?
0546デフォルトの名無しさん
垢版 |
2016/04/13(水) 14:39:12.21ID:ndZ6lh6D
>>545
rubyは下位互換性を捨てながらマイナーバージョンアップしてないか?
たまにcocoapodsが死んだりするんだが。
goで書き直してほしい。コマンドラインツールこそgoで書いてほしい
0548デフォルトの名無しさん
垢版 |
2016/05/01(日) 15:24:29.85ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
0550デフォルトの名無しさん
垢版 |
2016/05/11(水) 16:06:51.62ID:eKmG0PfI
GoでWindows GUIアプリ作った猛者はおりますか?
0554デフォルトの名無しさん
垢版 |
2016/06/01(水) 11:32:56.19ID:sax7yxVA
Go言語先週から学習し始めたけど、何か変な言語だな
JavaScriptのようにいまいち不完全な言語に思えてしまう
突然意図しない挙動が発生したりで、なかなか基幹システムでは使いにくいのかな?
Javaのようなガッチリ感がない気がするので

でもシンプルさなど良い面もあるけれど
0555デフォルトの名無しさん
垢版 |
2016/06/01(水) 15:06:00.18ID:559HNr1m
誰もGo言語を基幹システム作るのに使おうとは思わんよ
銀の弾丸がないことを理解していない人間が評価という行為をするのは難しい
0564デフォルトの名無しさん
垢版 |
2016/06/01(水) 22:56:48.57ID:tjGnKxey
LLやってる人からすると、バイナリをgdb使ってデバッグするのは教えてもらわないとなかなか難しいかも。
phpやrubyやってても普段からIDEでデバッガ使ってればそんなに違いはないんだけどね。
0566デフォルトの名無しさん
垢版 |
2016/06/02(木) 04:24:28.34ID:cXOBdHTr
>>554
その意図しない挙動という部分を具体的に出してもらいたい。
大概そういうのは言語のせいじゃなくて自分のせい。というのを
長い年月で繰り返して学習するもんだけども
0568デフォルトの名無しさん
垢版 |
2016/06/02(木) 10:03:29.88ID:sFcAoyCt
func later() func(string) string {
...
return func(g string) string {
...
}
}
ごめん、このクロージャの最初の部分のlater() func(string) stringってどういう意味?
関数名がlater 戻り値がstringは分かるけど、func(string)がなんでこんな場所に書かれてるのかな、と
0569デフォルトの名無しさん
垢版 |
2016/06/02(木) 10:16:38.46ID:mKtftCeF
laterの返り値がstringを引数にとってstringを返り値とする関数という意味では?
0572デフォルトの名無しさん
垢版 |
2016/06/02(木) 15:52:21.01ID:sFcAoyCt
>>569
あぁ、なるほど
ようやく今理解した

func later() [func(string) string] {
[]は見やすいようにわざと書いたけど、こういう事だね

関数laterは引数は取らずに、
返り値として「stringを引数に取り、stringを返り値として返す」
0573デフォルトの名無しさん
垢版 |
2016/06/02(木) 16:09:51.23ID:sFcAoyCt
あれ、ちょっと待って

https://ideone.com/i9EfQl

later()は引数取らないけれど、
f := later()
f("apple")
どっからstoreに"apple"なんか文字列引数が渡されてるの?
こういう型の場合、ローカル変数(ここではstore)にコンストラクタのような働きが起って自動的に引数がセットされるって事?
0574デフォルトの名無しさん
垢版 |
2016/06/02(木) 16:14:42.71ID:sFcAoyCt
連投ごめん
f := late()
によって、fはlater()の返り値の関数を取得してるんだね
だから、f("apple")には上の無名関数func(string) stringが呼び出されて"apple"が引数とされているってことか
ごめん、分かった
0575デフォルトの名無しさん
垢版 |
2016/06/03(金) 17:56:32.51ID:BR7tIPAt
http://mattn.kaoriya.net/software/lang/go/20131112132831.htm

これの最初のコードの最後の部分、
<-workerquit
は何をしてるの?

特に変数に代入することもないし

func (g *G) ClearMsg() {
for len(g.task) > 0 {
<- g.task
}
}
も同じ事してるけど
チャネルを開放してるのかな、とも思ったけど、明示的にcloseしなくていいのかな、と
またはnilや空文字などにするとか
0577デフォルトの名無しさん
垢版 |
2016/06/04(土) 20:36:19.02ID:OVOooqIv
windows版のbuildmodeはexeしかできないの?
もしできるならスクリプト言語のrequireみたいに動的な読み込みとかできる?
さらにもしできたとしてunload的な名前空間の削除は?
0578デフォルトの名無しさん
垢版 |
2016/06/06(月) 11:35:10.38ID:4GD0zoa3
>>576
遅くなったけど返答ありがと

そうなんだ
終了待ちとかあるんだ
普通にやることなければその場でkillのように終了させたほうがいい気もするけど、Goは一気にまとめて終了させるってことなのかな?
0579デフォルトの名無しさん
垢版 |
2016/06/06(月) 13:30:02.95ID:u3gzbyWM
>>578
終了待ちのところをコメントアウトして実行してみると分かると思うけど、終了待ちしないとgoroutineを回し切る前にmainが先に終わってしまう
0582581
垢版 |
2016/06/08(水) 00:28:26.77ID:sUO1i6Sl
あぁ、ごめん
fmt.Println(mes.ShowMessage())にすればいいんだね
0584デフォルトの名無しさん
垢版 |
2016/06/08(水) 13:40:28.97ID:6nwZJnu3
you 変数は必要ないんじゃ?

//you := make(map[string]string)

//you["Your_name"] = scanner.Text()
me.Your_name = scanner.Text()

//you["Your_gender"] = scanner.Text()
me.Your_gender = scanner.Text()

//me.SetProfile(you)
0585デフォルトの名無しさん
垢版 |
2016/06/08(水) 14:51:56.44ID:E58O1JXH
>>584
ほんとだ、ありがと
俺バカだなぁ

しかし、もし上記のような場合って処理できるのかな?
for k, v := range arr {
switch k{
case
0586デフォルトの名無しさん
垢版 |
2016/06/08(水) 15:28:46.54ID:E58O1JXH
switch k{ case 'Your_name': p.Your_name = v; } } のような処理は考えうるけど、
Pythonでいうsetattr(self, k, v)のようなこと出来ないのかなと思ったり
0587デフォルトの名無しさん
垢版 |
2016/06/08(水) 16:47:30.19ID:6nwZJnu3
んー、reflection を使えば良いんじゃないかな

func (p *Profile) SetProfile(arr map[string]string) {
for k, v := range arr {
key := reflect.ValueOf(p).Elem().FieldByName(k)
if key.IsValid() {
key.SetString(v)
}
}
}
0589デフォルトの名無しさん
垢版 |
2016/06/10(金) 11:28:41.43ID:+PET1099
http://qiita.com/kitoko552/items/a6698c68379a8cd8b999
オブジェクト指向っぽいことを試してみようと思い、上記のページを参考に以下のコード書いてみた
https://ideone.com/3ClfoG

$ go run capsule.go
# command-line-arguments
.\capsule.go:24: invalid indirect of Human literal (type Human)
というエラーが出るんだけどどこをどう変えればいいですか?

やりたいことは、
・カプセル化
・getter, setterの定義
・Embed
0593デフォルトの名無しさん
垢版 |
2016/06/11(土) 01:51:48.80ID:vokBGi10
>>587
https://ideone.com/rGIVZU
このような場合は上手くいったけど、

https://ideone.com/86I4on
このように、構造体に2つの構造体が埋め込まれていて、それらに更に動的にメンバ変数に値を入れていくとなるとどうすればいいのか悩んでるんですが
コメントで★を入れた部分はどのように記述すれば良いのか全く分からず半日くらい費やしてます(苦笑)
0594デフォルトの名無しさん
垢版 |
2016/06/11(土) 02:54:26.06ID:ncrPm/bC
とりあえずは即時関数で。

return &Profile{
mine: func() (m MyProfile) { m.SetProfile(arr["me"]); return }(),
yours: func() (y YourProfile) { y.SetProfile(arr["you"]); return }(),
}
0595デフォルトの名無しさん
垢版 |
2016/06/11(土) 12:57:03.40ID:5N4sydIU
>>594
ありがと
本当に助かりました
自分には浮かばない発想でした

しかし、一つ聞きたいのは、
func NewProfile(arr map[string]map[string]interface{}) *Profile {
var m MyProfile
var u YourProfile
return &Profile{
mine: m.SetProfile(arr[
0596デフォルトの名無しさん
垢版 |
2016/06/11(土) 12:58:26.45ID:5N4sydIU
>>594
ありがと
本当に助かりました
自分には浮かばない発想でした

しかし、一つ聞きたいのは、
func NewProfile(arr map[string]map[string]interface{}) *Profile {
var m MyProfile
var u YourProfile
return &Profile{
mine: m.SetProfile(arr['me']),
yours: u.SetProfile(arr['you']),
}
}
はダメなのに、なぜ
func NewProfile(arr map[string]map[string]interface{}) *Profile {
return &Profile{
mine: func() (m MyProfile) { m.SetProfile(arr['me']); return }(),
yours: func() (u YourProfile) { u.SetProfile(arr['you']); return }(),
}
}
は可能なのかな、と
SetProfile()自体が関数なのに、なぜわざわざ無名関数使って内包したSetProfile()を呼び出さないと上手くいかないんですかね?
0598デフォルトの名無しさん
垢版 |
2016/06/11(土) 13:26:31.32ID:ncrPm/bC
>>596

m.SetProfile(arr['me'])

この場合、副作用だけ(オブジェクトに値がセットされるだけ)なので、
return m とする(オブジェクトを返す)必要があるのです。

とは言うものの、SetProfile はメソッドではなく通常の関数でも良いのでは?
と思ったので http://ideone.com/5rnnHW ではそうしています。
0599デフォルトの名無しさん
垢版 |
2016/06/11(土) 13:44:39.08ID:5N4sydIU
>>598
なるほど、良く分かりました
別の方法も教えていただきありがとうございました
勉強になりました
0600デフォルトの名無しさん
垢版 |
2016/06/11(土) 14:12:16.15ID:JfIPVaDb
>>590
func NewHuman(name string, jobname string, position string) Human { return Human{ 〜
としても動くけど、これだと値渡しになって
h1 := NewHuman("Shinzou Abe", "politician", "prime minister") 呼んだときにも
中で1回コピー起こって無駄だから参照渡しにするってことでいいの?
0601デフォルトの名無しさん
垢版 |
2016/06/11(土) 22:32:52.72ID:oEY46iar
Javaで言う、ScannerのNextInt()みたいなのってGoには無いの?
bufioのText()しか調べても出てこないんだけど、これを型キャストしろってことなのかな?

scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
n := scanner.Text()
これをn.(int)って感じ?
0603デフォルトの名無しさん
垢版 |
2016/06/17(金) 15:30:55.46ID:De9+BeR4
出た。

プログラミング言語Go 
Alan A.A. Donovan, Brian W. Kernighan 著
柴田芳樹 訳     
発行元:丸善出版(株)
0604デフォルトの名無しさん
垢版 |
2016/07/10(日) 22:27:22.81ID:znpcZSb6
var t *time.Time = & time.Now()
とやると
cannot take the address of time.Now()
って出るんですけどなんでダメなのか教えて下さい
0606デフォルトの名無しさん
垢版 |
2016/07/15(金) 11:24:05.90ID:tpc0LssI
t := & time.Time{}

ts := time.Now()
t := &ts
みたいにアドレスで変数に保管したいってことだろ

ttps://golang.org/ref/spec#Address_operators
言語仕様上、&演算子が変数か構造体(のコンストラクタ)しか認めてない感じ?
実態の持ち主が行方不明になる可能性があってGCが動かなくなるのかねぇ
0607デフォルトの名無しさん
垢版 |
2016/07/17(日) 03:13:59.59ID:rRft+gba
ポケモンGOとコラボしてGopher出してもらおうぜ
このビッグウェーブ、乗るしかない
0611デフォルトの名無しさん
垢版 |
2016/07/20(水) 21:59:45.12ID:ZQpbH517
golang でWeb開発してる人にお聞きしたいんですけど
db周りってどうしてますか?
tableごとに構造体を用意した場合、単純に1tableをSELECTする分にはなんの問題もないんでしょうけど
joinしまくってた場合、各クエリごとに構造体を作ってる感じでしょうか?
そんなのだるいですよね。
どうしてるのか教えて下さい。
0614デフォルトの名無しさん
垢版 |
2016/07/22(金) 13:59:08.89ID:f6dSUOKk
pokemon Go Go
0616デフォルトの名無しさん
垢版 |
2016/07/23(土) 14:35:34.70ID:6lYjBmg5
Ninjin Go
0619デフォルトの名無しさん
垢版 |
2016/07/25(月) 09:19:11.89ID:l5ht4z0Z
selectするカラムのサイズのインターフェース型の配列を作って渡すじゃだめなの?
0620デフォルトの名無しさん
垢版 |
2016/07/25(月) 10:20:31.42ID:RKFFw9Lx
コードをチェックするときに
gofmtとgolintを設定したんですが両方共エラーがあった時に同じエラーを吐きます
どっちか一つでチェックさせれば良いんでしょうか?
0624デフォルトの名無しさん
垢版 |
2016/08/03(水) 12:29:51.75ID:48QXmcl+
この言語についてすこし気になっています。
例えばC言語のようにビット単位での操作などはできますか?
言い換えると、組み込みやOSカーネルのプログラミングなどは視野にあるのでしょうか?
またはC言語を完全に置き換える存在になりえますか?
0625デフォルトの名無しさん
垢版 |
2016/08/03(水) 13:17:02.98ID:mbys/AN5
goよりgithubの方が長生きするんでね
0626デフォルトの名無しさん
垢版 |
2016/08/03(水) 13:18:36.00ID:mbys/AN5
>>624
Windows用のDLLがc-sharedで作れるようになればなー
0628デフォルトの名無しさん
垢版 |
2016/08/04(木) 01:10:59.73ID:BIHJkeI+
GC前提っていうけど、objective-cやswiftみたいにARCでリソース解放してやることはできないのかな?
0629デフォルトの名無しさん
垢版 |
2016/08/04(木) 11:14:28.20ID:Ul5WpRfd
>>628
GCを切るというオプションはないと思う
そういう小回りを聞かせたいならrustとかC++を選ぶしかない。
0630デフォルトの名無しさん
垢版 |
2016/08/04(木) 11:56:34.90ID:8anV95gh
gokiburi
0631デフォルトの名無しさん
垢版 |
2016/08/04(木) 11:58:01.10ID:8anV95gh
OSだってそれ自身でGCやってるしなー
作業中にいきなり固まってHDDゴロゴロ言わせて
時計も止まってマウスも動かない
30分くらい放置してたら治ったり
0632デフォルトの名無しさん
垢版 |
2016/08/04(木) 12:59:03.09ID:SddwJFqD
GCはオプションではないようですね。
もうすこし調査が必要なようです。
ありがとうございました。
0635デフォルトの名無しさん
垢版 |
2016/08/05(金) 11:02:44.30ID:h08emFzO
>>633
メモリが足りなくなった時にキャッシュを解放して、コンパクションを走らせてるという動きは似たようなもの、と
言いたかったんじゃね?
0636デフォルトの名無しさん
垢版 |
2016/08/05(金) 13:39:10.50ID:r9Q5JMfz
ちょっとだけスレ違いかもだけど
kindle unlimitedとかいう電子書籍読み放題プラン始まって
技術書みてたらgoの入門書1.6対応版みつけた。
ttps://www.amazon.co.jp/dp/B01FH3KRTI/ref=cm_sw_r_tw_dp_x_TwbPxbN1BHQKM

結構読みやすい。
0637デフォルトの名無しさん
垢版 |
2016/08/06(土) 00:06:34.76ID:ukQkptRq
IT関連は今のところ、ほぼその本出してる翔泳社だけかな?
アメリカの方探してみたけど、そっちはどこも参加してない気がする。
0638620
垢版 |
2016/08/06(土) 17:15:53.39ID:TNYUaRVo
どなたかおねがいします
0640デフォルトの名無しさん
垢版 |
2016/08/24(水) 21:36:46.93ID:JcWOBO6t
loopのネストが多いと、go1.7で遅くなるらしい
SSAの関係で。

ttp://shinpei.github.io/blog/2016/08/13/what-ssa-brings-to-go-17/

俺のプログラムも遅くなった。。。orz
0641デフォルトの名無しさん
垢版 |
2016/09/18(日) 18:26:45.57ID:5S/llOjA
Goの型システムが貧弱とかよくdisられるけど
ジェネリクスが無い以外はわりとイマドキな言語だと思う
interfaceは構造的部分型付けっぽいし
既存の型に別名付けて拡張出来るし
0644 ◆SEdFBOkLSw
垢版 |
2016/09/19(月) 01:20:18.20ID:uQftjblX
イマドキではないな。
既視感あふれる感じ。
レシーバで関数書いていけるのが1番気持ちいい。気が狂ってからのLispみたい。
チャンネルは凄く楽だし。

>>641
ジェネリクス、あったら良いなと思うけど、無くても、型名にいちいち名前つけて、適当にインターフェイスに参加させていけば、割としっくりくるスライスになるよ。
0646デフォルトの名無しさん
垢版 |
2016/09/19(月) 16:25:57.74ID:UScDXP8E
もちろん調べました。
revelとbeegoですね。
ただこれは重いらしいので、あと使用雑感とか日本人の意見を聞きたいのですが。
0647デフォルトの名無しさん
垢版 |
2016/09/19(月) 18:10:05.55ID:7Lx9kgsv
>>644
一応ジェネリクスは検討中ではあるんだよね。
結構あったらいいのにという場面はある。
それ以外は割といい感じ。エコシステムがいい。Editorも今や静的言語のメリットちゃんと享受できるし。
VSCいい。
0649デフォルトの名無しさん
垢版 |
2016/09/19(月) 20:43:34.00ID:UScDXP8E
あ、このスレたってから3年もたってるんですね
サボって使用雑感なんて期待しちゃいけない感じか
しょうがないから自分で検証してみます
0650デフォルトの名無しさん
垢版 |
2016/09/19(月) 23:21:43.10ID:7Lx9kgsv
>>649
ここには大した有識者はいないと思う。
かと言ってどこにいるんだろうね?twitterに投げてみるとか
0651デフォルトの名無しさん
垢版 |
2016/09/20(火) 00:29:26.51ID:dodRqZqD
サービスやってるとこので聞くのは、LL言語のフルスタックフレームワークから、SPAと軽量なapiサーバーへの移行みたいなのが多いイメージが。
なのでrubyからだと、sinatraっぽくmiddleware分離したいとか、migrationツールは別に用意みたいな話の方が多いかも。

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
https://www.slideshare.net/yujiotani16/gorevel-51949206
https://developers.eure.jp/go-language/advent-calender-7/
0654デフォルトの名無しさん
垢版 |
2016/09/21(水) 12:36:40.08ID:bQEJ8r3q
重いかどうかが問題になるレベルまで試すのは現実的に無理があるだろ
まあそもそもほとんどのアプリは使っている言語やフレームワークが重いかどうかが問題になる前に消えるわけだが
0658デフォルトの名無しさん
垢版 |
2016/09/21(水) 16:03:39.59ID:1PEot0Hq
ID変えて自演してるような気もするけど
ベンチマーク取れば重いかどうか数字で表せるよね
0660デフォルトの名無しさん
垢版 |
2016/09/21(水) 18:46:11.33ID:K/wMuhbh
>>657
そのリストじゃRails風かどうかまではわからないからな
それを調べるためだけに1個ずつインストールしてまで使う労力を求めてる不親切なコミュニティだわ
まあそれが日本でのGoのあり方なんだろうが
0663デフォルトの名無しさん
垢版 |
2016/09/21(水) 23:06:50.01ID:C/0XZtBi
ActiveRecordのつくり込みしてない実装は意外と面倒だったりするんだけど、goで使ったことないのでわからん。
クエリービルダーなら何かあるかも。
複数テーブル使うこともないので、今のところDBまわりは簡単にDTOみたいな実装で済ましてる。
0664デフォルトの名無しさん
垢版 |
2016/09/22(木) 01:47:25.32ID:QBrMY9aw
自分が欲しい物を他力本願で自分で調べない奴はプログラミングに向いてない
0667デフォルトの名無しさん
垢版 |
2016/09/22(木) 10:18:25.14ID:7A/wc93b
railsみたいなのがいいならrails使っとけばいいだろ?
なんでgolang使おうと思ってるの?
0668デフォルトの名無しさん
垢版 |
2016/09/22(木) 11:10:54.24ID:y4xL8ywB
Goは基本的にCなので、ゼロから作りこむような複雑な処理がそのまま移植できる。
Rubyだと、extensionをCで書かないといけなくなる。
0669デフォルトの名無しさん
垢版 |
2016/09/22(木) 11:24:25.38ID:sBPmoePF
goでDB扱おうとすると動的言語のほうが楽だと痛感するけどね
単純なテーブルに対するcrudなら構造体作って対応できるけど
joinしたりとかすることも考慮するとそうも行かない。
素直にrailsでいいんじゃね
0670 ◆SEdFBOkLSw
垢版 |
2016/09/22(木) 13:36:58.94ID:3pIcfs21
ORM使うからじゃないの?
JOINして使う結果とJOINせず単独で使う結果はそれぞれ別の構造体になってしかるべきな気がする。
あんまRDB使わないけど。
集合検索結合集計なシステムと手続き型とオブジェクト型と関数型、どれ同士を組み合わせても、インピーダンスミスマッチは仕方ないんだから、どっちかで歩み寄らなきゃ何ともならんような。

階層型とばっかり組み合わせてるけど、言語側はわりと世代交代早いからDB側でストアド書いてるわ。
0673デフォルトの名無しさん
垢版 |
2016/09/22(木) 15:19:40.46ID:sug0rqOR
mvcではなくrails的なもので高速という話なら、goで探すよりphoenix framework/elixerみたいなのを先に触った方がいいのでは。
0675デフォルトの名無しさん
垢版 |
2016/09/22(木) 15:32:16.50ID:sBPmoePF
RDBからKVSに行ってやっぱRDBがいいやと言う流れじゃないの?
mongodbとか使ってるやついるのか今
0676デフォルトの名無しさん
垢版 |
2016/09/22(木) 21:41:56.84ID:sBPmoePF
>>670
結局ビジネスロジックをどっち側に寄せるかという話になるんだろうけど
ストアドプロシージャは素朴なコードしかかけないから抽象化しづらいと思うんだけど
書いたことがないから想像でしかないけど。

でもgolangの場合は抽象化しきれないからストアドプロシージャ側にロジックを寄せて実装はありなのかもしれない
0678デフォルトの名無しさん
垢版 |
2016/09/22(木) 22:24:25.35ID:7A/wc93b
phoenixも速いよ
pingだけだったらレスポンスμsで返ってくるよ
0680デフォルトの名無しさん
垢版 |
2016/09/23(金) 11:19:01.19ID:iqtk0HU6
>>679
多分だけどpureGoでkvs側もgo製のをつかってkvsも含めてワンバイナリにしたいってことなんじゃない?boltとか
0681デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:15:45.15ID:Pu19XfH5
>>676
割と書けるよ。ただ、パワーバランスにもよるけど。
番号発行を伴う複数の関連するデータの保存や削除なんかはDBに任せた方が良い場合もそこそこある。
テキトーにORMで雑然と入れがちだけど、根本的にオブジェクトと行が一対一にならなければ、一対一の操作やらビューを用意すべきだと思う。
0685デフォルトの名無しさん
垢版 |
2016/10/04(火) 16:39:32.48ID:ZPmHgmj0
>L&RのKであり

冒頭からアホ丸出し
0686デフォルトの名無しさん
垢版 |
2016/11/02(水) 12:09:01.86ID:txovE4qH
Go言語のゆるキャラ何だよあれ。
ゆるキャラのデザインは言語の普及率に無関係じゃないと思うぜ。
0696デフォルトの名無しさん
垢版 |
2016/11/04(金) 20:23:44.63ID:m0/gbw+8
golangでググるとgolang-jp.orgが一番上にヒットするけど
これは公式で認められたサイト?
0697デフォルトの名無しさん
垢版 |
2016/11/06(日) 23:12:50.69ID:NZCpJm/D
非公式だろ
ライセンス的には著作権表示さえしてれば問題ないことになってる
でも日本語じゃなきゃダメって人にはGoはお勧めしない
0698デフォルトの名無しさん
垢版 |
2016/11/08(火) 13:10:36.86ID:afLUgDEA
別に日本語の情報も出揃い始めてるし
日本語onlyの人でもそろそろ使えると思う。
でもgolang-jpってコミュニティの中心に近い人が運用している感じがしないのが不安
0700デフォルトの名無しさん
垢版 |
2016/11/18(金) 18:19:10.73ID:0j66y/nm
日本語じゃなきゃダメって人はなでしこ以外選択肢ないんじゃね
Go言語という日本語以外の言語を扱おうとする時点でオワットル
0701デフォルトの名無しさん
垢版 |
2016/11/18(金) 19:29:14.49ID:e+81aozX
織田信長
0703デフォルトの名無しさん
垢版 |
2016/11/22(火) 10:24:50.70ID:uKd48bt3
日本語でググったり質問したり出来なきゃ使い物にならん
ってのは別におかしくない

最低限のマニュアルやエラーメッセージすら読まないレベルなら排除すべき
0704デフォルトの名無しさん
垢版 |
2016/12/21(水) 09:11:00.18ID:rs5TCfU6
ウイルススキャンで go1.7.4.windows-386.zip の go/pkg/tool/windows_386/trace.exe が Trojan:Win32/Skeeyah.A!rfn と判定されたんですけど、語検出だと思いますか?
0705デフォルトの名無しさん
垢版 |
2016/12/21(水) 12:34:37.87ID:UOM+5F1I
ウイルススキャンに何て名前のソフト使ってんだよ

自分の行動を明確にしないと、有用かも知れない情報であっても風説の流布と同じ扱いにされる事に早く気づけよ
0707デフォルトの名無しさん
垢版 |
2016/12/21(水) 16:22:35.54ID:rs5TCfU6
>>705
MSEです
指摘ありがとう
今後気を付けます


>>706
そこで試してみます
ありがとう
0708デフォルトの名無しさん
垢版 |
2016/12/22(木) 04:50:05.52ID:jVrDGj21
>>705-706
結果を報告します
ダウンロードしたgo1.7.4.windows-386.zipのSHA256のハッシュはサイト上のものと一致しました
zipを展開しtrace.exeだけをVirusTotalにアップロードしました
ウィルススキャン56個中13個がTrojan判定したみたいです、多数決という考え方でいえば誤検知だったのだと思われます

https://www.virustotal.com/ja/file/cd4b6551da15d172a61f4cefcbba77c0fde1932fee9ab0879cb1cf126a5d39fd/analysis/1482349209/
0713デフォルトの名無しさん
垢版 |
2016/12/24(土) 15:25:12.26ID:Y/bvEAMg
>>712
これいいね
ありがとう
0714デフォルトの名無しさん
垢版 |
2016/12/25(日) 16:55:37.58ID:MSs3MIcU
>>708
そのリンク先の「最新を表示」をクリックすると、56個中24個に増えるね。
誤検出なら減っても良さそうな気がするが……。
0720デフォルトの名無しさん
垢版 |
2017/01/03(火) 01:22:49.11ID:HKX7d2sm
https://speakerdeck.com/nabeken/go-and-license
これ読んだ感じだとgoで作った物にはgo言語のライセンス文等を含める必要があるっぽい?
0721デフォルトの名無しさん
垢版 |
2017/01/11(水) 19:06:49.30ID:AM+tjFEn
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512
0724デフォルトの名無しさん
垢版 |
2017/01/18(水) 21:03:54.63ID:xMB+Qmdf
>721
webサーバーや常駐プロセスならelixir、システム系やバイナリならcrystalかな。
golangはどちらも増えてきたな。
0725デフォルトの名無しさん
垢版 |
2017/01/20(金) 14:22:52.01ID:uizqycjV
list = [["a",1],["b",2],["c",3],["d",4],["e",5]]

こんな配列を作りたいのですが

pythonだったら
list = []
list.append(["a",1])
list.append(["b",2])
とすればできるのですが
GOではどうやればいいのでしょうか?
0727725
垢版 |
2017/01/20(金) 17:00:33.53ID:uizqycjV
>>726
どうもありがとうございます。
map[string]int か []structも調べてみます。
0728sage
垢版 |
2017/01/22(日) 00:26:49.27ID:JSjE+wfT
流行りの機能あんまり無いし使い辛そうと思ってたが
書いてみるとしっくりくるな、良く出来てる
0729デフォルトの名無しさん
垢版 |
2017/01/22(日) 01:48:56.85ID:EXKusZK8
流行りの機能を実装するのに流行りの機能を使ったかどうか考えたら自明よだよ。
クリスマスツリーの飾りか、彼らが本気で必要だと言うなら自転車の補助輪みたいなもの。
0733デフォルトの名無しさん
垢版 |
2017/01/24(火) 23:06:50.70ID:c6xhurTC
>>729
> 流行りの機能を実装するのに流行りの機能を使ったかどうか考えたら自明よだよ。
これ停止条件どこですかね、天地創造?
0734デフォルトの名無しさん
垢版 |
2017/01/25(水) 09:47:48.89ID:QApusiWr
「CコンパイラはC言語で書かれている」みたいなことを言いたかったんじゃないかとエスパーしてみる。
0735デフォルトの名無しさん
垢版 |
2017/01/25(水) 10:44:53.45ID:JgDNrEDV
>>733
停止条件は、流行りの機能を使わない形での流行りの機能の実装、だろうね。
流行りの機能と言うから話がややこしくなるが、
ハンダゴテ作るのに、ハンダゴテ使って半田付けする必要があるのは、手順として間違ってるって事。
1.5より前のGoをコンパイルして、Go1.5でそれ以降をコンパイルするようなもん。
0738デフォルトの名無しさん
垢版 |
2017/02/01(水) 17:37:29.24ID:+X2jALUV
あの、golangでwebサイトを作る場合って
作った数だけ
go run hogehoge1&
go run hogehoge2&
go run hogehoge3&
こんな感じで裏で実行させておくんでしょうか?
0740デフォルトの名無しさん
垢版 |
2017/02/02(木) 11:20:33.63ID:nnsBzBvb
goアプリのデーモン化ってデファクトスタンダードそろそろ出た?
supervisor使うのが一番ラクかな未だに
0741デフォルトの名無しさん
垢版 |
2017/02/17(金) 10:38:39.08ID:w6Mwd8Yg
Go 1.8です
LinuxでGOROOTを設定する理由はこれで合ってますか?

・/usr/local/go以外の場所にインストールする場合。例えば~/local/goとか。
・異なるバージョンのgoをインストールするとき。GOROOTを切り替えることでバージョンの異なるgoを切り替えられるから。

あとGOPATHはデフォルトだと~/goを使いますよね。
1つのgoしか使わない場合とか、異なるバージョンのgoで~/goを共有するならGOPATHの設定しなくてもいいですか?
0742デフォルトの名無しさん
垢版 |
2017/02/17(金) 16:12:14.19ID:yGnzX63H
はい
0743デフォルトの名無しさん
垢版 |
2017/02/17(金) 19:02:09.98ID:W71R9C1F
n := 1.0
fmt.Printf("%f\n", n) // 1.000000
fmt.Println(n) // 1

1番目の出力、何で1.0じゃなくて1.000000なんですか?
2番目の出力、何で1.0じゃなくて1なんですか?
0744片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/02/17(金) 19:42:06.34ID:MbV+Py5H
>>743
コンピュータでは数値は内部表現で表されている。内部表現では10.0も10.00も同じデータだ。
その数値の内部表現に対してPrintf,Printlnがその形式で出力するように設計されているから。
もし好きな形式で出力したいならPrintfの書式を調べればよい。
0745デフォルトの名無しさん
垢版 |
2017/02/18(土) 01:11:54.03ID:pMCaQLyx
そういうものなのかわかりました
0747デフォルトの名無しさん
垢版 |
2017/02/18(土) 17:55:40.13ID:OtEeuMsz
go get -u hogehoge/hoge/hoge
だとbinにコマンドが入らなくて
go get -u hogehoge/hoge/hoge...
だと入るんですが
...ってなんですか?
0748デフォルトの名無しさん
垢版 |
2017/02/18(土) 18:32:44.27ID:HTn/aT5C
version1.8が出たらしいね
>>704-708の問題はどうなったんだろ?
0750デフォルトの名無しさん
垢版 |
2017/02/19(日) 11:12:55.70ID:hWiEfeI5
>>749
先輩ありがとうございます
0751デフォルトの名無しさん
垢版 |
2017/02/21(火) 00:38:10.56ID:gQJwpX7p
これ実行すると1と表示されますが
var i []int
if i == nil {
fmt.Println(1)
}

これだと1が表示されません
i := []int{}
if i == nil {
fmt.Println(1)
}

var i []intを:=バージョンで宣言したいんですがどうやって書くんでしょうか?
0756デフォルトの名無しさん
垢版 |
2017/03/02(木) 10:36:42.56ID:TnPaXq7u
Goってエンコード/デコード処理って標準で入って無いのな
読み込んだShift-jisデータが文字化けしててさ、デコードどうすんだろうって
調べたらstringsメソッドにも無いし標準パッケージにも無くて、
えっ?えっ?って困惑しながら調べてたら外部パッケージ使うんだってね

ええ?エンコード/デコードなんて標準で入ってて当たり前じゃん、どうなんてんのよとブツブツ言いながら
佐和子は外部パッケージの使用例を見てみるのであった・・
佐和子はまた驚いた「なにコレ・・デコードするだけで何でこんなに書かないといけないの!?」
Pythonを少しかじっている佐和子にとってデコードはhoge.decode('utf-8')という退屈な一行なのであった
佐和子は涙した、「あたし、Go無理かも・・なんて面倒なの・・グスン」悲しむ感情とは裏腹に
股間も濡れていることにまだ気づかない佐和子なのであった
0759デフォルトの名無しさん
垢版 |
2017/03/02(木) 16:29:39.78ID:X4z0kGE4
やる気がないgolang.jpとgolang-jp.orgは今すぐサーバをシャットダウンさせるべき
個人で翻訳し綴られるわけないのに
やるならオープンな場で活動するべき
0761デフォルトの名無しさん
垢版 |
2017/03/05(日) 22:36:40.86ID:S4MzRoP3
rubyのbundleみたいにプロジェクトごとにパッケージを使いたいので公式っぽいdepを使おうと思いました
何か自分がこれから書くソースコードもGOPATH以下のsrcに書かないといけないようなんですが
これってdepを使うからこういう決まりってわけではなくgolangだからこういう決まりになってるんでしょうか?
0762デフォルトの名無しさん
垢版 |
2017/03/05(日) 22:46:59.76ID:Y02SgW6x
そうだよ
0765デフォルトの名無しさん
垢版 |
2017/03/09(木) 09:56:41.81ID:06AYmq+V
rubyの配列や文字列、正規の色々細々便利関数みたいな、JSのアンダスコアみたいな
そういう汎用ライブラリ(か自前関数)はGo言語は持っているのでしょうか
0769デフォルトの名無しさん
垢版 |
2017/03/11(土) 03:11:21.73ID:ptLt8H3Q
←chan:受信専用
chan←:送信専用

これ何でや?逆の方がしっくりくるやろ・・・
0770デフォルトの名無しさん
垢版 |
2017/03/11(土) 07:32:20.09ID:2HZNdoI4
2000年代初期に

変数名: 型

より

型 変数名

の方がしっくりくるだろ、、、って言ってたの同じじゃね

偉い人は人間工学的に良いって言って、凡人は慣れたら前者が無条件に良く見える
慣れない老害はワカモノにバカにされるといいよ
0771デフォルトの名無しさん
垢版 |
2017/03/11(土) 08:24:56.74ID:3yr+jwLv
英語圏では常に自分が中心の個人主義故に主語は大抵自分自身になるわけ
つまり←chanというのは、「チャネルから私へ」となり受信
同様にchan←というのは、「私からチャネルへ」となり送信

という完璧な回答を佐和子はニヤニヤしながら書いたのであった
0772デフォルトの名無しさん
垢版 |
2017/03/11(土) 08:52:31.22ID:50ajbFL2
variant (as) Type
みたいなのじゃないの?
パスカルもそうだし、あながち新しいもの独特って訳でもない
0773デフォルトの名無しさん
垢版 |
2017/03/11(土) 08:57:14.88ID:3yr+jwLv
>>771の訂正と補足
うーん、主語というか、とにかく「私」が隠れてるんや! 英語圏は私!私!の文化やねんから!
日本では子供に合わせてパパは妻の事をママっていうねん、視点子供に変わったりするねん
でも英語圏ではそんなことないねんって、視点は常に自分自身やねんって

チャネルが送ってる先は「私」やねん ←chan だから受信やねん
チェネルに送ってるのは「私」やねん chan← だから送信やねん
0774デフォルトの名無しさん
垢版 |
2017/03/11(土) 09:48:49.71ID:ptLt8H3Q
>>773
この説明でしっくりきましたわ
向こうの人は自分視点が徹底しとるんやなー
サンクスやで!
0776デフォルトの名無しさん
垢版 |
2017/03/20(月) 15:12:26.30ID:CYCZfEEr
グロ中尉
0778デフォルトの名無しさん
垢版 |
2017/03/21(火) 23:10:22.44ID:uzSvvu2S
公式のサイト見て驚いたけどUnicode文字の例として日本語が使われてるのな、なんか意外だ
0779デフォルトの名無しさん
垢版 |
2017/03/22(水) 00:13:24.31ID:9PE4AFjh
https://play.golang.org/p/FoAcpJwOTh

appendでの容量の増え方に何か法則があるのでしょうか?(2倍にされる場合もあってちょっと怖いです)
0781デフォルトの名無しさん
垢版 |
2017/03/22(水) 03:56:14.98ID:9PE4AFjh
>>780
d
1024以下は2倍でそれ以外は1.25倍で増やしてくのか
0783デフォルトの名無しさん
垢版 |
2017/03/23(木) 13:15:39.80ID:U7xuC5Fy
言語選択のアイコンが[aあ]になってるサイトもあったな。
選択肢には日本語なかったけど。
0784デフォルトの名無しさん
垢版 |
2017/03/23(木) 16:14:28.11ID:9ddE+onE
SwiftのApple公式チュートリアルページのUnicode絵文字サンプルは寿司
中国、韓国は頑張れ
0785デフォルトの名無しさん
垢版 |
2017/03/23(木) 17:51:06.97ID:9n/hT6SR
JavaのAPIドキュメントは日本語版が用意されてくらいだから
世界のIT業界にとって日本は大事な顧客様なのだろう
0787デフォルトの名無しさん
垢版 |
2017/03/23(木) 19:38:53.40ID:fky8z8fA
日本のIT業界ってマイクロソフトに固執してるイメージあるからじゃないか。
アンドロイドのIMEは中華製って感じがする。
0788デフォルトの名無しさん
垢版 |
2017/03/24(金) 19:16:22.29ID:213lDDdv
Windows10でVScode-go環境を作ったんだけど、コード補完が遅すぎて使えなくなってます。

変数名打って、型名書いてたらいきなり補完が効いて変数名の最後の数文字が消えたり、コメント書こうとしたら、//部分が突然削除されたり等…

最初はgocodeのautobuildが悪さしてるのかと思ってsetting.jsonからfalseにしても効果はなく……

誰か、go言語で同様の症状に陥った方は居ませんか?
環境は

Windows10
go 1.7.5(最初は1.8でも同様の症状が出てバージョン下げたけど意味なし…)
VSCode1.10.2
Git2.12.0
Go拡張0.6.55(多分最新版)
各種ツール(最新版)

です。
色々調べたけど正直お手上げなので、誰か解決方法を知ってたら教えてください…
0789デフォルトの名無しさん
垢版 |
2017/03/24(金) 22:53:28.10ID:frT9Zhqz
なんでその質問をこのスレでしようと思った?
0791デフォルトの名無しさん
垢版 |
2017/03/25(土) 01:06:24.19ID:SfvzpHLw
英語苦手なのと、この板とソフトウェア板にVScodeスレが見当たらなかったからです

あと、似た症状を起こした人が居たらしく、どうもそのissueを読む限りgocodeのautobuildが原因じゃないかと言われていたので試してみたり、vscodeのsetting.jsonの設定を変えてみたりしたのですが、結果は改善しませんでした…
ttps://github.com/Microsoft/vscode-go/issues/696

このスレにこの症状についてわかる方が居ないようでしたら…意を決して聞くつもりです
0796デフォルトの名無しさん
垢版 |
2017/03/25(土) 15:10:30.58ID:SfvzpHLw
>>793
ちょくちょくcloseを実行してアップデートを繰り返してみましたがだめでした…

>>794
あ…すみません…あったんですね…


あの後、色々試した結果
自動保存を切るとどうやら調子が良くなるみたいです
go fmt相当の機能が自動保存を付けているとかなりの頻度で実行され、それがコードを書くのを妨害していると思われます
自動保存なんてオプションを興味本位でONにしていたのが行けなかったのだと思います…
コードが書き終わった後にctr+sで手動で保存するようにすればなんとか使えるようになりました

ご協力ありがとうございましたm(_ _)m
0797デフォルトの名無しさん
垢版 |
2017/03/25(土) 15:11:17.55ID:5MnOmzEx
合唱コンクール
0798デフォルトの名無しさん
垢版 |
2017/03/25(土) 19:04:15.43ID:axug6RQN
自己解決したからってIssueに投げなくていいわけじゃないぞ
ちゃんとIssueでバグ報告しとかないと
0802デフォルトの名無しさん
垢版 |
2017/03/28(火) 11:29:46.98ID:XYMZoduR
>>715
で反応ないってことは使っている人居ない感じ?
どれで書いて勉強すればいいのかなぁーって
0803デフォルトの名無しさん
垢版 |
2017/03/28(火) 15:18:18.42ID:9WCU6g+e
使ってないですねえ
0805デフォルトの名無しさん
垢版 |
2017/03/28(火) 15:47:02.89ID:XYMZoduR
人柱向けなので、人柱が居ないか聞いてみたんだと思う……
それまでのプラグインよりも良いという「らしい」から
0807デフォルトの名無しさん
垢版 |
2017/03/28(火) 23:47:54.70ID:wrx/BE3m
言語ごとにエディタ変えるよりオールインワンがいいねん
0809デフォルトの名無しさん
垢版 |
2017/03/29(水) 11:37:06.05ID:e2+Szx9c
いまのところ、エディタ+実行環境ぐらいしか使ってないので、
Ideaのプラグインの頃との違いがあまり分かってない。
liteideもそのぐらいしか使ってなかたったけど。
0810デフォルトの名無しさん
垢版 |
2017/03/29(水) 11:45:26.94ID:UMeevNqB
>>807
vimとemacsが仲間にして欲しそうにこちらを見ている

言語ごとの文法に慣れたら、言語ごとのIDE/エディタも慣れると思ってた時期が俺にもありました
環境は変わるとホント辛いよね
0813デフォルトの名無しさん
垢版 |
2017/03/30(木) 18:14:38.97ID:tZ7gdWKd
LiteIDEってGoで書かれているわけじゃないんだね。
ずっとGoで書かれているんだと思ってた。。。
0815デフォルトの名無しさん
垢版 |
2017/04/20(木) 02:41:38.17ID:pSoU+zvg
Google公式でaptパッケージをメンテしてほしい
今あるのはバージョンが古いし
0818デフォルトの名無しさん
垢版 |
2017/04/21(金) 23:13:42.55ID:DOzdPvj8
rubyのbundleかpythonのvenvみたいなのが欲しい
depはいちいちプロジェクト毎にGOPATHを書き換えないといけないからだるい
0822デフォルトの名無しさん
垢版 |
2017/04/27(木) 23:04:18.01ID:Q8g/twyk
delve入れて IntelliJ IDEA でデバッグしようとしたんだけどなぜかパニクる、同じようなこと起こってるひといる?
0824デフォルトの名無しさん
垢版 |
2017/04/30(日) 12:43:49.05ID:YASP0NOm
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0825デフォルトの名無しさん
垢版 |
2017/04/30(日) 19:15:55.71ID:Kng/Djib
…がないとebitenパッケージしかgetしないってことだと思う。
exampleとかebitenutilもgetしたいなら…つけるんじゃないか。
0826デフォルトの名無しさん
垢版 |
2017/05/02(火) 18:24:35.45ID:Wqf9gHHS
>>749
0827デフォルトの名無しさん
垢版 |
2017/05/03(水) 08:31:28.68ID:O89wJViE
遅ればせながらshibukawaさんのnanovgo demo sampleってやつを
ubuntu 16.04上で動かしてみたけど、これいいね
巷での評判はどうなの?
0829デフォルトの名無しさん
垢版 |
2017/05/03(水) 20:02:29.02ID:O89wJViE
>>828
windows10でもやってみた
結構いろんな環境で動きそうですね
goはやはり1.8.1
0830デフォルトの名無しさん
垢版 |
2017/05/05(金) 13:35:23.32ID:P7YKsBwJ
>>829
同じマシン(i5 第3世代、HPデスクトップ)で速度を比較してみると
windows10: 130-140 FPS
ubuntu 16.04: 125付近 FPS
で、あまり違いはなかった
0831デフォルトの名無しさん
垢版 |
2017/05/05(金) 13:43:01.75ID:P7YKsBwJ
>>830
おっとまた忘れた
画面の解像度が速度に大きく作用するので、その記載
ここでのテストは 1920x1080でした
0832デフォルトの名無しさん
垢版 |
2017/05/06(土) 13:38:13.01ID:e8GUuuYA
>>831
別のマシン(i5-4590S)で Windows 10 (Creators update、上も同じ)
380-400 FPS

第4世代と第3世代の差は圧倒的だは!
0833デフォルトの名無しさん
垢版 |
2017/05/06(土) 13:45:33.58ID:xfCUj8G0
おつ
0834デフォルトの名無しさん
垢版 |
2017/05/16(火) 00:10:12.72ID:jyI5CijS
goにもnilを許容しない変数定義できるようになって欲しい。
typeScriptとかになれるとnilになるとコンパイラが指摘してくれんだろという思い込みがgoで書く時に問題になる。実行時エラー出しまくりw
0835デフォルトの名無しさん
垢版 |
2017/05/16(火) 18:53:07.01ID:18D2gyoZ
Rustでもやれば
0836デフォルトの名無しさん
垢版 |
2017/05/17(水) 11:26:01.95ID:8ydAfzFN
Rustとかになれると変数値破壊するとコンパイラが指摘してくれんだろという思い込みがGo, TypeScriptで書く時に問題になりそう
JavaやSwift(ObjC)みたいなnilable修飾詞はあっても良いかもねぇ、どうしても欲しいと言う機能でもないけど
0837デフォルトの名無しさん
垢版 |
2017/05/17(水) 22:28:30.66ID:sVDcp3Zu
rustのほうがコンパイラがより親切ってこと?
goのエコシステムが好きだから、今のところはrustを試そうとは思わないなぁ。

goのnilって型がありつつnlみたいな状態とただのnilって違うし
そういう混乱があるから
nilを許容しない方向に進んだほうがより直感的になる気がする。
0838デフォルトの名無しさん
垢版 |
2017/05/20(土) 09:48:00.81ID:POYpVYoy
rustのエコシステムはgo並みに親切だけど、コンパイラはドSだからやめた方がいい
試した所でgoやtypescriptのコンパイラのゆるさを見直すだけだよ

goのnil, nlはまぁ混乱するからどっちかだけにして欲しくはある
0839デフォルトの名無しさん
垢版 |
2017/05/25(木) 22:23:56.33ID:gYX5/I4W
Goをはじめてつかってみたけど
Goの良さを生かせるプロジェクトってすごく限られてるよな
0841デフォルトの名無しさん
垢版 |
2017/05/26(金) 01:11:35.38ID:ZNc2U8qB
go脳裏ってgoroutineだしね。並行処理したいってなければphpでいいのかもね。
俺的にはkotlinに行ってみようかな。
0842デフォルトの名無しさん
垢版 |
2017/05/26(金) 10:53:21.83ID:gvIQ5llv
go versionしてもバージョンがすべて表示されないんですけど
1.8.1なのか1.8.3ナノ化マイナーバージョンまで調べる方法教えてください
0843デフォルトの名無しさん
垢版 |
2017/05/27(土) 00:13:43.62ID:RKgIRc4T
Goの人間に期待してない感じ良いと思う
バカでもある程度同じ書き方になるみたいな
0844デフォルトの名無しさん
垢版 |
2017/05/27(土) 03:53:53.40ID:KIGprW1f
メソッドでnilが来て死

func (h *Hoge)foo() int {
return h.bar + h.baz
}
0846
垢版 |
2017/05/27(土) 09:39:16.58ID:sEq8ObI0
>>843
palmのgraffitiみたいな感じで、歩み寄れというメッセージ感じるな。
0850デフォルトの名無しさん
垢版 |
2017/05/27(土) 21:59:50.58ID:KIGprW1f
ポインタのレシーバーは常にnilチェックがいるのか
面倒だな
0853デフォルトの名無しさん
垢版 |
2017/06/07(水) 12:39:27.11ID:ayFCuqeB
こういうのいっぱいつくればできるのかな?

func server8081() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8081", nil)
}

func main() {
server8081()
}
0855デフォルトの名無しさん
垢版 |
2017/06/08(木) 11:31:34.32ID:RTYYoCEV
なんとなくだけどdepが今後オフィシャルツールになると見込んでdepしか使ってないけど
GUIライブラリも手放した過去があるからGoogleを信用してはいけないよな
glideも覚えるべきか
0856デフォルトの名無しさん
垢版 |
2017/06/09(金) 16:50:45.42ID:T5+k/E3o
v := flag.Int("v", 0, "v")
flag.Parse()
fmt.Println(*v)

var v string
flag.Int(&v, "v", 0, "v")
flag.Parse()
fmt.Println(v)

このvはなんの違いがあるんですか?
0857デフォルトの名無しさん
垢版 |
2017/06/09(金) 22:09:41.77ID:TYDzsVxx
型が違うという話?
0858デフォルトの名無しさん
垢版 |
2017/06/11(日) 19:32:55.88ID:h1hPlu9T
getchみたいなのって標準機能じゃ出来ないんですか?
ぐぐるとc使ったりOS付属のコマンドを使うやり方しかないんですがこういうものですか?
0860デフォルトの名無しさん
垢版 |
2017/06/15(木) 22:00:13.66ID:w0F6tV0E
メモリ確保するとき

hoge := make(map[string]int)

hoge := map[string]int{}

ではどっちのほうがよいの?
0861デフォルトの名無しさん
垢版 |
2017/06/21(水) 01:28:25.82ID:eYd+pbWG
最近Goを使うところがやたら増えてるけど
そんなにGoroutineを使う業務があるのか
0862デフォルトの名無しさん
垢版 |
2017/06/21(水) 10:29:13.06ID:CAzvCkNY
>>861
バッチ処理で複数Workerに作業させたいとか
そういうのに使うために一度Gorutine使ってからは、あんまり使わんな。
httpserver動かすと裏で動いてんのかな
0864デフォルトの名無しさん
垢版 |
2017/06/23(金) 21:14:31.74ID:6gEmwLmB
flagで引数を必須にする方法はないんでしょうか?
0871デフォルトの名無しさん
垢版 |
2017/07/07(金) 19:46:28.59ID:7JrZOF7d
暇職だけだよな
0872デフォルトの名無しさん
垢版 |
2017/07/10(月) 13:48:40.97ID:gqDySAuG
普段みんなどこいるの?
正直匿名じゃないとアホな質問とかできないから
ここが居心地いいんだよね。
teratailとかで下手にアホな質問書き込むとすごい叩かれるから凹む。
0873デフォルトの名無しさん
垢版 |
2017/07/10(月) 16:12:24.25ID:XvbOmo/f
今の時代は非匿名文化ですから
teratailで叩かれるような質問ならここでも叩かれますよ
むしろ2ちゃんに飽きてる層が多いから2ちゃんで質問しても回答もつきにくい
0874デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:51:54.54ID:gqDySAuG
>>873
いや。叩かれるのはいいんだけど、
特定されて、こいつこんな質問過去にしてたんか。恥ずかし
ってなるのが怖くて質問できない。
専用アカウント作ればいいんだろうけど使い分けんのが面倒。
0875デフォルトの名無しさん
垢版 |
2017/07/10(月) 19:04:55.53ID:l6mkv8ve
誰だって最初は初心者なんだからビビらず
どこでだって質問しまくればいいのよ
0876デフォルトの名無しさん
垢版 |
2017/07/10(月) 20:44:54.88ID:e/A+ULgc
>>874
そんなの気にしてたらいつまでも成長しませんよ
アカウント作って質問するぐらいの労力より回答するほうが労力使うことを知ってくださいよ
さっさとteratailのアカウント作ってこい
0878デフォルトの名無しさん
垢版 |
2017/07/11(火) 21:07:45.10ID:aZj0SKJK
>>877
言語化するときに頭が整理されるからな
0884デフォルトの名無しさん
垢版 |
2017/07/17(月) 11:07:35.85ID:MkiOtZ1h
goスレは実質part3くらいだよ
0889デフォルトの名無しさん
垢版 |
2017/07/17(月) 19:23:15.17ID:stj3YUiZ
今日Goインストールしました、
ビルドしてexeファイル作るのまではできたけど、
Goで取ってきたデータを、
表示する、アプリみたいなのを作るにはどうすればいいの?
ほかの人のPCでアプリを実行できるようにしたいです。
0891デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:40:18.36ID:stj3YUiZ
>>890
すみません、
初心者なので意味が分からないです、
でも、ありがとうございます。
0892デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:44:48.16ID:HJdOjxBV
対話がチグハグすぎる。

質問者はwebから情報を取得して表示するアプリを作りたいと言っておる。

GUIアプリを作りたいと言っているんだろうか?
それとも、、、なんだろ?
0893デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:50:45.38ID:stj3YUiZ
>>892
そうですそれです、
webから取得したデータを、
表示するGUIアプリを作って、
他の人のPCでも、簡単に実行できるようにしたいです、
今は、取得したデータを、
コマンドプロンプトに表示させるのしかできません。。。
0895デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:12.58ID:stj3YUiZ
>>894
詳しい人でもあまりやったことないんですね、
アプリ作るの想定してない言語なのかな、
情報ありがとうございます、
そこ読んで勉強してみます。
0896デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:11:10.65ID:HJdOjxBV
>>895
Goをやってる人って複数言語をたしなんでいるとこが多いから
GUIが得意な言語を使うと思う。
GoでわざわざGUIをやりたいというのは変態くらいだと思うよ。今のところ。
webアプリとかならありえるし
どういうアプリか知らんけどwebサーバとして動作させて
ブラウザで結果表示するとかが、まぁGoアプリとしてありえる範囲かと。
0897デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:38:02.29ID:pfmhHyiC
GUIアプリのことだったのか、それは失礼
他の人が回答してるようにGoの得意分野じゃないから止めた方が良いね
0898デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:43:30.10ID:qHGcXNCc
そういう用途ならWebアプリが一番無難だよね。つまりJavaScriptかAltJSの言語
0899デフォルトの名無しさん
垢版 |
2017/07/18(火) 00:42:33.52ID:L9UQruVY
>>887
すごく同意
0900デフォルトの名無しさん
垢版 |
2017/07/18(火) 17:19:23.70ID:ltlpiHrO
null安全は今から入れると互換性保てないからな
最初から入れなかったGoogleは馬鹿
0904デフォルトの名無しさん
垢版 |
2017/07/20(木) 16:06:01.17ID:TTDKN4T0
The Go Blog Toward Go 2
ttps://blog.golang.org/toward-go2

ようやくこれを読んだけど面白いこと発表したわけじゃないのな
何にも決まってないけどGo 2リリースに向けて手伝って!とか言ってるから信者は助けてあげればいいんじゃないかなぁ
問題提起だけでも助かるって言ってるからnull安全だのジェネリクスがないからダメって言ったら聞いてくれるはずだよ
0905デフォルトの名無しさん
垢版 |
2017/07/20(木) 16:14:08.52ID:hN2WxidD
そうそう、ダメダメなんて抽象的なこと言ってても放置されるだけだってね
具体的な体験レポートを提出して説得しろってさ頑張れよ
0906デフォルトの名無しさん
垢版 |
2017/07/20(木) 21:02:59.35ID:9ngnJ+y5
goってcode generete推奨って感じだけど
generete自体はtemplate文字列とか使ってて
ライブラリ開発者は辛い思いしてるよね。
(xoのテンプレートいじるの辛い)

だから時期パージョンではAST出力とASTからbin生成をサポートして欲しいな。
そうするとaltGoみたいのが作り安くなって言語ごとカスタマイズ出来るようになるし
0907デフォルトの名無しさん
垢版 |
2017/07/23(日) 02:23:00.81ID:22lpzJ7z
ジェネリクスの追加で、みんなハッピーになるのかな
仕様の変更や削減はいいけど、追加を最小限にとどめられるかが勝負だね

あと2進数リテラルは、重要だと思うんだけど、そんなことないの?
8進より、よほど役に立つと思うんだけど、8進リテラルって何か特種用途があるの?

ってか8進数なんて切り捨てて、アンダーバー付きの2進リテラルを追加した方が良かったと思うんだ
8進数なんて、誰が求めているのかよく分からないし、せめて0oにしてくれた方が・・・
こういうのを排除するのが、この言語の正しい姿勢だと思うんだけどね
0908デフォルトの名無しさん
垢版 |
2017/07/23(日) 16:17:42.71ID:knasDU4O
>>907
けっこう賛成
0909デフォルトの名無しさん
垢版 |
2017/07/26(水) 10:18:59.22ID:ENBFGRGX
>>907
合議制になるんだから提案してみたらいいんじゃない。
おれとしても賛成だよ。
個人的にはelixirのパターンマッチングでバイナリにもマッチングできる仕組みに感動して、
goでバイナリ操作したいならelixirみたいなパターンマッチング欲しいって思った。
ジェネリクスはほしいけどrustでいいかなって気もしてる。
0912デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:25:03.33ID:ggnuHEiJ
ジェネリクスじゃなくていいから
interfaceの結合型が簡単に作れるようにして欲しい

func Xxxx(readWriter io.Reader & io.Writer)
func Xxxx(readerOrWriter io.Reader | io.Writer)

とりあえずinterface{} が 関数のパラメータになってるの辛すぎだからそこを解消して欲しいわ
0913sage
垢版 |
2017/08/07(月) 01:18:22.11ID:ncmD/ymY
ちょっと触ってみた

一撃でランタイムなくても動くバイナリができたときはびっくりした
0916デフォルトの名無しさん
垢版 |
2017/08/17(木) 01:04:47.91ID:5a8n6tS4
Go2ではコレクション操作の機能をもっと豊富に用意してほしい
forループ文だらけになるわ
0917デフォルトの名無しさん
垢版 |
2017/08/17(木) 01:23:28.75ID:lKqFMmqx
本当これ
mapとfilterよこせや
0922デフォルトの名無しさん
垢版 |
2017/08/17(木) 09:46:20.42ID:lKqFMmqx
>>919
ジェネリクスがないから型安全じゃなくなる
0923デフォルトの名無しさん
垢版 |
2017/08/17(木) 10:57:10.38ID:wX4L2Jep
>>922
くそ。やはりジェネリクスか。
goのエコシステムは好きだからrubyとかrustを使う気はないんだよなぁ。
generete使って実装追加するようなのならあるかな?
0925デフォルトの名無しさん
垢版 |
2017/08/17(木) 23:51:48.55ID:JDyXRi5Q
golangで2chに書き込めない
クッキーの設定エラーが出る。ヘッダに入れてるんだけどな
あとレスポンスのsjis to utf8は出来たけどリクエストをutf8 to sjisする方法が分からない
0926デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:03:21.95ID:c33/jNGO
いきなりgolangで書き込むんじゃなくて
主導の対話通信(telnetあたり)で2chへ書き込んで通信の内容でも確認してみたらよいんでない?
0929デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:17:02.43ID:bO8OoBBY
Set-Cookieが複数あったのが原因だった
すまん
0930デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:44:00.14ID:bO8OoBBY
あ、書き込みは出来るけど文字化けするのか

>>926
node.jsでしかしたことなかった

>>927
>>928
http.NewRequest("POST", "https://";+params.server+".2ch.net/test/bbs.cgi?guid=ON", transform.NewReader(strings.NewReader(values.Encode()), japanese.ShiftJIS.NewEncoder()))
ってしてみたけど文字化けして書けない
0931デフォルトの名無しさん
垢版 |
2017/08/18(金) 01:33:09.70ID:bO8OoBBY
values.Encode()の時点でURLエンコーディング(UTF8)されるからそれをSJISにしても意味ないのか
やっと原因分かった
0932デフォルトの名無しさん
垢版 |
2017/08/18(金) 01:45:45.20ID:bO8OoBBY
SJISのURLエンコードを出来るライブラリが見つからないのですが、何かないですか?
0937デフォルトの名無しさん
垢版 |
2017/08/18(金) 06:41:42.32ID:mSCO2cNh
頑なにgoにgenericsはいらないって主張してた人たちの立場はどうなってるの?
0939デフォルトの名無しさん
垢版 |
2017/08/18(金) 11:29:59.19ID:vRHq3miw
別に立場変わらずgoにgenericsはいらないって主張してるでしょ

genericsが必要だって主張してる人たちが
Go2ならgenericsを採用してくれる機会があるはず!って盛り上がってる(?)だけで
ついでに例外とAssertも盛り上がってくれねぇかな
0940デフォルトの名無しさん
垢版 |
2017/08/18(金) 11:33:40.78ID:+X0+m8dy
個人的にはinterface{}型が関数パラメータに多用されてしまう状況を改善してくれるだけでいい。
例外は別に無くてもいいかな。
0942デフォルトの名無しさん
垢版 |
2017/08/18(金) 12:09:30.77ID:bO8OoBBY
url.Valuesに突っ込むキーと値をsjis化したら文字化けせずにpost出来た

>>941
itestAPIならutf8だけどそれ以外面倒だよな
0944デフォルトの名無しさん
垢版 |
2017/08/18(金) 19:03:33.52ID:PB7aU8rD
>>943
違うよ
そのスレ初めて見た
0946デフォルトの名無しさん
垢版 |
2017/08/25(金) 16:47:51.80ID:a5MHugSq
ついに1.9!
もう少しで2.0やん
0948デフォルトの名無しさん
垢版 |
2017/08/25(金) 19:08:15.57ID:a5MHugSq
あ、そっか
0951デフォルトの名無しさん
垢版 |
2017/08/26(土) 01:02:11.77ID:UaCnfxPk
>>950
何その言語
0955デフォルトの名無しさん
垢版 |
2017/08/26(土) 10:49:06.08ID:gyHjYOL6
Documentation - The Go Programming Language
https://golang.org/doc/
0958デフォルトの名無しさん
垢版 |
2017/08/27(日) 08:21:25.17ID:gv0iyIef
今更だけどGoglandアプデしたらmainパッケージ内で複数ファイルのビルドができるようになてた

言語専用のIDEがあるって理由で使ってる人はあんまりいないか
俺の開発の8割はIDEに支えられている…
0959デフォルトの名無しさん
垢版 |
2017/08/27(日) 11:36:53.98ID:Fy+qgg0G
GOPATH=~/goって設定してるんですけど
depを使うようになったのでGOPATH=~/foo:~/goな風に設定したんですよ
これでdep ensureすると自動的に~/foo/以下の適当な場所に人様のパッケージがインストールされるんですが
binコマンドが生成されないんです
depを使わずgo getでインストールするとbinコマンドが生成されるんですがdep使ってインストールしたらbinコマンドが生成されないんでしょうか?
例えばhttps://github.com/spf13/cobra
0966デフォルトの名無しさん
垢版 |
2017/09/24(日) 05:52:40.41ID:Kg+0Au0P
友達探しにコミュニティに参加するつもりでいて
気持ち悪いと思うのなら参加しなければ良い

技術的な事をもっと深く知りたくて
コミュニティに参加したいと思ってるなら
人見てコミュニティ選んでるコミュ障のお前の方が気持ち悪い
0970デフォルトの名無しさん
垢版 |
2017/09/28(木) 12:31:06.65ID:h8WKWHlz
type fSlice []float64
var pool = sync.Pool{
  New: func() interface{} {
    return make(fSlice, 0, 100)
  },
}
go func(){
  n := pool.Get().(fSlice)
  ...
  pool.Put(n)
}()
20回に1回くらい
panic: interface conversion: interface {} is *main.fSlice, not main.fSlice
pool.Get().(*fSlice)なんてすると
panic: interface conversion: interface {} is main.fSlice, not *main.fSlice
で仕方なく
n,ok := pool.Get().(fSlice)
if !ok {...}した時に気づいたのだけど、Falseでも下の処理には影響しない
Falseだと100回のappendで何故かCapが128になる(Trueだと100)
この謎分かる?
0971デフォルトの名無しさん
垢版 |
2017/09/28(木) 13:36:21.42ID:h8WKWHlz
原因分かりました
pool.Put(n)の所、端折って書きましたが、実際はresetメソッド作ってそっちで(*n)[:0]してましたが
func(f *fSlice)reset(){
  *f= (*f)[:0]
  pool.Put(f) → pool.Put(*f)にすべきでした
}
サーセン
0972デフォルトの名無しさん
垢版 |
2017/11/11(土) 00:39:24.57ID:LLMRc4SD
質問です。
先日始めたばかりでデリファレンスの仕方が分からなくて困ってます。
超初歩的ですが教えてください。

コードは以下と同類です。
http://go-database-sql.org/varcols.html

これの dest:= の部分を

th := []interface{}{ new(int), new(string), new(string)}

にして読み込んだところ、
確かにポインタのスライスになっているようなのですが、デリファレンス出来ません。
(単に書き方が分からないだけですが)
試した結果は以下です。

fmt.Println(*th[0], " ", *th[1], " ", *th[2]) // invalid indirect of th[0] (type interface {})
fmt.Println(*(th[0]), " ", *(th[1]), " ", *(th[2])) // invalid indirect of th[0] (type interface {})
fmt.Println(th[0], " ", th[1], " ", th[2]) // 0x11f09b08 0x11ea1468 0x11ea1470
fmt.Println(th) // [0x11f09b08 0x11ea1468 0x11ea1470]

よろしくお願いします。
sqlx使ってもいいのですが、そもそもデリファレンス出来ないのがよく分かりません。
0973デフォルトの名無しさん
垢版 |
2017/11/11(土) 07:08:21.29ID:qi+awpQj
>>972
Goにとっては、要素がポインタではなくてただの interface{} に見えている。
なのでデリファレンスできないというエラーになる。

方法としてあるのは、th := []*interface{}{...} にする方法。
ポインタの配列と宣言しているので、要素のデリファレンスが可能。

もしくは、要素ごとに、デリファレンスする前に、*intとかに型アサーション(ググって)をする。
その後でデリファレンスする。
0974デフォルトの名無しさん
垢版 |
2017/11/11(土) 09:52:19.27ID:LLMRc4SD
>>973
最終的にはいけました。ありがとうございました。

> th := []*interface{}{...} にする方法

th := []*interface{}{new (int32), new(string), new(string)}
// cannot use new(int32) (type *int32) as type *interface {} in array or slice literal: *interface {} is pointer to interface, not interface
// cannot use th (type []*interface {}) as type []interface {} in argument to rows.Scan

これは駄目でした。new (int32)がポインタ配列に何故か入れられないという謎仕様?
全ての型はemptyインタフェース interface{} を実装しているのに、
全てのポインタ型はemptyインタフェースへのポインタを実装してない?
(rows.Scanでは受けられないというのはこちらの話ですが)
まあ今の段階ではよく分かりません。

> 要素ごとに、デリファレンスする前に、*intとかに型アサーション

fmt.Println(*(th[0].(*int32)), " ", *(th[1].(*string)), " ", *(th[2].(*string)))

こちらはいけたのですが、しかしこれではなあと。個別べた書きでは意味無いんですよね。
本当は構造体で受けたいのですが、sqlxしかないのかなあと。
(sqlxは内部で使用しているであろうリフレクションが遅そうでいや)

Goはリフレクションが遅くないとかいう落ちってあります?
リフレクション用のタグを別装備しているし、静的にリフレクションしてたりします?
というか動的言語(PHP/JavaScript)からの移植がこんな初歩的なところで躓くのは想定外でした。
動的言語前提の構造になっているとかなり辛いですね。
json周りでも同様のことが想定されますし、そのための型スイッチってのも何だかなあ、という気がします。
愚痴になってしまってすいません。
0975デフォルトの名無しさん
垢版 |
2017/11/11(土) 11:11:10.62ID:rrUNs59d
new している意味がよく分からないけど、予め変数を割り当ててしまえば良いような?

rows, err := db.Query("select id, first_name, last_name from users")
:
var (
id int
firstName, lastName string
)
rows.Next()
err = rows.Scan(&id, &firstName, &lastName)
:
0976デフォルトの名無しさん
垢版 |
2017/11/11(土) 13:21:37.63ID:Zhof0cH3
>>975
それだとDBのレコード個別にコードが必要になる。
だから当然困るし、当然同じように困っている人も居て、ググると出てくる。
https://stackoverflow.com/questions/17840963/create-a-map-in-golang-from-database-rows
それでsqlxなのだが、見る限りこれ裸のGoでも出来るのではないかと思って試していたわけ。

newしている意味はない、というか見ての通り今は文法もあやしいので、
動くコードを探してそこからスタートしてる。

ただそもそもsqlでレコードをいちいち走査することもないから、やりたいのはまさにsqlxのこれで、

> pp := []Place{}
> err = db.Select(&pp, "SELECT * FROM place WHERE telcode > ?", 50)
> http://jmoiron.github.io/sqlx/ より抜粋

何故これが標準でないのかがよく分からない。
(ついでに言えば三項演算子がないのも変だと思うが。)

とはいえ、自前でsqlxバリの環境を整えるなら結局リフレクションしか(多分)なく、
これが静的言語の限界というか当然で、それならsqlxを使った方が多分マシ。
楽して速い言語かと期待していたが、正直プログラミングレベルはCと大して変わらないし、
1970年代で止まっている言語と揶揄されるのも分かる。
C+GC+型システムと考えた方がいいのかなこれは。
0977デフォルトの名無しさん
垢版 |
2017/11/11(土) 13:33:59.14ID:proXGFSN
phpと同じ感覚でgoでdatabase使おうとすると死ぬよね。
結局go側とsql側のスキーマ二重管理になるから、そのままphpと同じノリで使えない。動的言語と静的言語の差だね。

じゃあどうするかというとsql側のスキーマからgoの構造体をコード生成する。
xo とか使う。

http://tdoc.info/blog/2016/07/06/xo.html
0978デフォルトの名無しさん
垢版 |
2017/11/11(土) 13:51:58.52ID:LLMRc4SD
>>977
自動コード生成ツールか。まあPHPとGoを同時使用するのならありでしょうな。
ただまあ、俺の場合はそうではなく、Go内で二重管理するのが気に入らない。

俺が試しているのは掲示板なんだが、PHPの場合は結局、

echo json_encode(fetch_all($db,"SELECT * FROM threads;")); // fetch_allは全読み関数

だからリード側はDBの型依存が全くない。(何が入っていても中身を全部吐き出すだけ)
結果、新規機能追加の場合はライト側の変更だけでよく、変更は1箇所で済む。
Goだとリード側も変更が必要になるのが気に入らない。
だから構造体に押し込んで、リードもライトもその構造体ベースでやれれば変更は1箇所で済む、
ということを考えているのだが、これはSQLの構造上厳しそうだ。
今sqlx読んでいるが多分無理だね。
0980デフォルトの名無しさん
垢版 |
2017/11/11(土) 14:14:23.09ID:proXGFSN
>>979
だよね。静的言語を使う限りどうしようもない。
スキーマ設定をどこに置くかという問題だと思うが。
goの構造体からsqlのスキーマを作る
or
sqlのスキーマからgoの構造体を作る

の二択しかない。リフレクションを駆使して動的にスキーマ解決したいって
結局実行時エラーの可能性が出るだけだし。
0981デフォルトの名無しさん
垢版 |
2017/11/11(土) 14:27:57.90ID:LLMRc4SD
>>979
今回は味見なんだよ。
だから糞でもとりあえずコードを書いてどれくらい速いか試すよ。
とはいえ、RawBytesとか用意して最下層のコピーもケチるくらいだから、完全にノリがCだね。
これで遅いわけがないが、結局は管理コストとの兼ね合いだろうね。
俺はC出身だから付いていけるけど、今時ではないよなこれは。

俺はPHPでも十分速いと思っている。
というか、SQLiteのラッパとしてしか使う気がないから、せいぜい100行程度しか実行しないし、
言語間の差異はほぼ無く、DBの性能が見えるだけだと思っている。
でもまあ、さんざん「PHPは糞だ」という奴が居るから味見中な訳だ。
選択肢が増えること自体は悪いことではないし。

Node.jsは既に味見終了して、データセットが小さい時はPHPよりは速い結果が出た。
しかし大きい時はPHPよりも遅くなった。これはclusterしてないのでシングルスレッドの限界かと思っている。
ただ、Nodeの場合は単一プロセスだからメモリ側にキャッシュ出来、これだと当然ぶっちぎりで速いので、
現実的にはこれかな、といった感じ。

で、Goはどうなの?ってのが今。興味あるのなら以下にどうぞ。
https://meguca.org/g/2724701
Haskellerが現れたので引っ張り込む方向で考えてる。
君らがGoのを書いてくれるのならこちらも助かるし歓迎する。
0982
垢版 |
2017/11/11(土) 14:53:58.14ID:X8lWnCzG
Cでこれ書いたら絶望的にめんどくさくない?
そもそもSQLサーバができることはSQLサーバに任せてストアドにするか、
データベース自体Goで書くか、なんかそうしないと、
インピーダンス差がでかすぎるのに2重管理しない、は無理じゃない?
2重管理が絶対的な悪ではないと思うけど。
0983デフォルトの名無しさん
垢版 |
2017/11/11(土) 15:20:24.76ID:LLMRc4SD
>>982
誰もCで書くとは言ってないが、仮にCで書くとして、
ライブラリが揃っていれば、大して苦労しないと思うよ。
Goとは大差ないだろう。

ほぼローカルで動作してしまうのでGCがないと苦労するってこともないし、
型システムも100行程度のプログラムならウザイくらいで大してメリットないし。

動的言語の場合は既に言われているようにスキーマ管理が一元化出来る
(正確にはやらなくてもそのまま動くだけだが)
分だけ書く量は少なくて済む。
プロトタイピングには動的言語の方が向いてる。

なお今回の場合はGoがCに劣ることもないので、わざわざCで書き直すメリットはない。
(GCをほぼ使わないから速度低下もないし)
0984デフォルトの名無しさん
垢版 |
2017/11/11(土) 15:36:08.28ID:proXGFSN
>>983
>動的言語の場合は既に言われているようにスキーマ管理が一元化出来る
>(正確にはやらなくてもそのまま動くだけだが)
> 分だけ書く量は少なくて済む。
> プロトタイピングには動的言語の方が向いてる。

同意する。Goでデータベース操作の決定版がでないのが物語ってる。

逆にGAE/goのdatastoreを使うときはGoとの相性の良さを感じる。
スキーマがGo側に設定することが決まっているから。
0985
垢版 |
2017/11/11(土) 15:56:16.25ID:X8lWnCzG
>>983
まー、確かに。
正直すぐ死ぬプログラムならメモリ管理もしない()という選択肢もあるわけだしな。
外の世界と相性の悪い言語だと言うことは確か。
形が適当なjsonとかとも同様にいちいちキャストがしちめんどくさいし。
c#で言うdynamicみたいな型がありゃ良いなとは思うが、コンパイル時に解決してる事を善とするので無いのは仕方ない。向いてないわ。
0986デフォルトの名無しさん
垢版 |
2017/11/11(土) 16:18:54.52ID:LLMRc4SD
というか、これはAPIが足りてないんだね。
(以下コードは文法があやふやなので参考程度で)

database/sqlはScanを使うのが定番のようだが、Scanではargsの可変長指定しかないのがいけない。
だから構造体の中身を確認するのにリフレクションが必要になってしまう。

type Thread struct {
no int
time int
body string
}
th := Thread{}
rows, err := db.Query("SELECT * from threads;")
err = rows.Scan(&th.no, &th.time, &th.body) // ここでばらすから中身を知らないといけない

とりあえずScanが構造体を受け、その構造体にScannerインタフェースを実装する方式なら、
リフレクションは回避出来るし、おそらく最高速度で動く。
ただ、このためのAPIがない。

err = rows.Scan(&th) // ばらさずに構造体を与える
func (th Thread) Scan(src interface{}) err // 各構造体でばらす。手間は増えるが最速のはず

DBを生で叩いたことがないから知らないが、DBからの出力が既に配列なのか?
或いは同様のことはポインタ配列で受ければいいので割り切ったか。(972参照)

>>984
GAE/Goはググってみたがよく分からん。
ただ今回はCREATE TABLE部分も自前で持つ為、スキーマ管理はGo側でも「本来は」出来る。
SQLの構造上、CREATE TABLE と INSERT はほぼ同じなのでPHP等ではSQL文字列を共有出来る。
だから1箇所にしか書かずに済んでた。ところがGoはリード側も必要だからぐぬぬ、ってなってる。
0987デフォルトの名無しさん
垢版 |
2017/11/11(土) 16:29:51.83ID:LLMRc4SD
>>985
お前他スレも荒らしてた荒らしだろ。

この程度のプログラムで「メモリ管理(キリッ」とか言っちゃう時点でお前はCを知らないし、
お前みたいな馬鹿にはCは無理だ。
それで何故Cに話を振る?だれもCで実装しようともしてないのに。

普通にCが出来る奴なら鯖でDB読んでJSON返すだけのプログラムでリークはしないし、
リークしないように管理する(程のこともないが)に苦労することもない。
そもそもそれはGoで書いた時にGCがどこで動くか見えていれば分かるはず。
君はそこにも達していない。
0988デフォルトの名無しさん
垢版 |
2017/11/11(土) 17:10:37.92ID:ZUnF3Lay
うめようず
0989デフォルトの名無しさん
垢版 |
2017/11/11(土) 17:56:09.07ID:LLMRc4SD
というか void* がないのね。
これではどうやっても fetch_all で隠蔽出来そうにない。
まあ void* なんて認めたら型システムは崩壊するから致し方無しか。

そしていきなりunsafeに手を出そうかと考えているわけだが、
これって Offsetofがあるって事は基本的にはマーシャル用なのかな?
0990
垢版 |
2017/11/11(土) 18:53:30.76ID:X8lWnCzG
>>987
荒らしじゃないよ。
真面目に話してるが、仮定に対して仮定したら切れるって意味わからん。
0991
垢版 |
2017/11/11(土) 18:58:21.35ID:X8lWnCzG
>>987
まさか、
>>981の、ノリがC、C出身だからついてける、に対して
「ならCで書けば?でもめんどくさいと思うけど。」って嫌味だって気づいてないんだろうか?
可哀想な人ってどこにでも居るんだな。

Gcが動くタイミングに関しては、多分もう少しマシなレベルで知ってると思うけど。

そもそも、CでDBから取得してどうの、と言う話で、何を使うかどう取得するかすら決まってないのに、リークしないようにメモリ管理するなんて絵空事は言えんだろ。
全部インハウスライブラリならわかるけどさ。
メモリ管理しない、は思いつきでも言えるわ(笑)
0992
垢版 |
2017/11/11(土) 18:59:31.42ID:X8lWnCzG
嫌味が荒らしになるとは、ネットは京都より平和な場所になったんだなぁ。
0993
垢版 |
2017/11/11(土) 19:03:39.05ID:X8lWnCzG
よく読んだら>>979で同じ事言われてるのにドヤ顔で返事してるし、本気でそうなんだろうな。

void* をどう使いたいかによるだろうが、それこそ*interface{}じゃねえの?と思ってしまう。
0994デフォルトの名無しさん
垢版 |
2017/11/11(土) 19:16:58.98ID:TpLoCFAx
次スレよろ
0995
垢版 |
2017/11/11(土) 19:23:54.10ID:X8lWnCzG
まあ、要らないカラムが多すぎるだけなら、
row,err:=sql.Queryで、
column,err:=row.Columns()
vals:=Make([]sql.RawBytes,len(column))
args:=Make([]interface,len(column))
for i:= range values {
 args[i]=&vals[i]
}

でvalsとargsつくって、
Scanに(args...)で渡せば、
使うときにvals[i]をstring(vals[i])とかよしなにしちゃえるんじゃないの?
0996デフォルトの名無しさん
垢版 |
2017/11/11(土) 19:26:08.40ID:LLMRc4SD
>>991
日本語でおk

君と話が噛み合わないのは、君が勝手に読み違えているから。
それは君の日本語能力が不十分だから。
だから君は荒らしなんだよ。
俺は他スレで君が同様に空回りしてるのを見たことがある、というだけ。

君には荒らすつもりはないのだろう、それは事実としても、
日本語能力が足りない奴がレスすること自体が荒らし行為なんだよ。
馬鹿なら馬鹿なりに何度でも読み返せばいいだけなんだがな。

韓国人ならマジで死んでくれ。


>>994
おk。>>46見る限り次スレはpart6(このスレがpart5相当)でいいか?
8時まで待って異議なしなら俺が建ててみる。
異議ありならその人が建てて。
0998
垢版 |
2017/11/11(土) 19:26:34.95ID:X8lWnCzG
>>996
ごめん、勢いで建てた。
0999
垢版 |
2017/11/11(土) 19:27:10.90ID:X8lWnCzG
>>996
バカはバカなりに何度も読み返してくれれば、嫌味にも気がついだだろうに。悲しいなぁ。
1000
垢版 |
2017/11/11(土) 19:34:53.44ID:X8lWnCzG
まあ、可変長受ける関数に実体を指すinterfaceの参照のスライスを...で渡せるのはと割と便利。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1493日 7時間 30分 2秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況