Go language part 1

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2013/10/10(木) 12:04:51.78
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
2014/03/27(木) 00:35:35.75ID:NajF0K82
初心者だけどstrings.Reader をio.Reader として渡せるって仕様としてどうなの
継承も何もしてないけどコンパイル時にチェックされてるの?
2014/03/27(木) 01:03:43.90ID:jrFRKAI8
別に結構な言語でioの継承なんだが、なんか問題ある?
2014/03/27(木) 01:23:58.48ID:NajF0K82
string.Readerはio.Readerを継承してるの?
io.Readerの条件を満たしてるとは書いてると思ったけど
2014/03/27(木) 01:44:26.20ID:NajF0K82
突っかかってるようで悪かった
継承がない言語でダックタイピングできる、つまり条件を満たしてるとどうやって確信できるかわからなかったんだ
標準ライブラリを読んでるんだけど型アサーションしてないから不安になってるだけ
2014/03/27(木) 05:15:32.21ID:syLidNhE
ある型がインタフェースを実装してるかは規定されてるメソッドがあるかどうかだけで決まる
Javaみたいに明示しない
ちなみにインタフェースを実装してるかどうかはコンパイル時に解決される
strings.ReaderだったらRead(p []byte) (n int, err error)を持ってることからio.Readerを実装しているといえる

もし実装できてないのにそのインタフェースに代入しようとしたらコンパイルエラー出るから試してみて
これが非明示的なのはGoの目玉の一つだから公式のドキュメントなりどっかのブログなり読んでね
2014/03/29(土) 00:49:28.00ID:a/9aD0gE
interfaceって構造的部分型付けって事でいいんかいな
2014/04/06(日) 16:57:33.01ID:MCAj6vro
全ての型はInterfaceを内包している
74デフォルトの名無しさん
垢版 |
2014/04/21(月) 00:41:39.71ID:BvA2ph+v
Goの継承っぽい機能って日本語で何て呼ぶのが良いんだろ
埋込型って呼んでるけど伝わるんかな
2014/04/21(月) 10:58:39.64ID:zriSdqBt
とりあえず、元の英語はなんだよ?
76デフォルトの名無しさん
垢版 |
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.
2014/04/22(火) 09:36:11.23ID:xnbqoEyH
じゃあ匿名フィールドにしよう(提案)
2014/04/22(火) 12:08:13.66ID:cWM9qn1m
無名じゃないか?
2014/04/22(火) 19:04:17.16ID:px+UMl9z
ちょっとしたコードを書いただけでもサイズが大きくなるのなんとかならんのかな
2014/04/22(火) 20:04:18.23ID:cWM9qn1m
全部スタティックリンクするからだから、理由があってのことなので
2014/05/05(月) 21:06:28.33ID:+tyXPhHV
故に組み込みには不向きだとどっかで見たな
将来改善されるのだろうか?
2014/05/05(月) 23:06:49.70ID:YuCWT0mm
むしろ組込み向けのほうがダイナミックリンクは避けたくないか?
Goが組込みに向いてるかどうかは別として。
2014/05/08(木) 05:12:59.74ID:5XLbD0ro
デバッグまともに出来るIDEあんのこれ?
32Bitで開発環境統一した方がいいんかな
2014/05/18(日) 16:17:49.47ID:mk6giDMC
Oracleとのアレでjavaやめてこっちくることはないかな
85デフォルトの名無しさん
垢版 |
2014/05/23(金) 23:43:10.01ID:kqkMywsW
むしろdartじゃないか
2014/05/24(土) 01:08:21.25ID:uWBH7T6t
あれが、Googleが作った
プログラミング言語だよ。

ほらみて、ゴラン
2014/05/24(土) 13:58:01.94ID:35dvvibx
ファイルサイズが大きくなるのでこんなのが流行るのは困る
大手企業のプログラマーなら時間もあるし仕事で試しに導入するなんてことも余裕だけど
中小だとそんな余裕はない
2014/05/24(土) 14:07:55.34ID:hlo3j/US
ゴラン高原
2014/05/25(日) 11:15:27.02ID:bZpUSdHJ
goでファイルサイズが大きくなって困るのとか今時組み込みぐらいだろ。
2014/06/06(金) 22:59:44.76ID:a9mGSAin
C++は自分で一から書く文には問題ないけど、書き方が無茶苦茶な人から引き継いだ時が悲惨だった
そういうのがマシになりそうなコンパイラ言語だからこれ普及して欲しいんだけど、周りで扱ってる人ほとんどいないんだよなあ
2014/06/06(金) 23:14:29.91ID:fJT63IUR
リーディングコード読んでからGo書くとなるほどと思う事があった
2014/06/06(金) 23:15:21.48ID:fJT63IUR
リーダブルコードだったぉ
2014/06/07(土) 00:31:14.08ID:mUxFP0h6
>>92
どんまい
2014/06/20(金) 14:52:51.87ID:ltBAGUPz
go-gtk全然進んでないじゃん
やる気あんのかよ
2014/06/20(金) 22:23:23.60ID:QMkHcad5
windows環境でのGUIライブラリがもっと発展すれば普及もしそうなのにね
コンパイラ言語だし、仕様とかも結構気に入ってるからもっと頑張って欲しいんだけどなあ
2014/06/21(土) 00:05:57.28ID:UJNwDYla
windows環境ならWalk使えば良いんだけど、
リファレンスやチュートリアルが無いのが広まらない原因なのかなぁ。
サンプルは豊富なので機能は充分だと思うが。
2014/06/21(土) 01:32:59.17ID:5/17O7zj
クロスプラットフォームで動く定番のguiを我々は求めている
2014/06/21(土) 01:55:32.09ID:2OQISpPs
walk知らんかったけどmain見て萎えた
これをcoolって言っちゃってるひとって・・・
2014/06/21(土) 14:08:11.15ID:p8O6EEji
お、AndroidにGoサポート来る?
2014/06/21(土) 20:56:12.02ID:tQVBpUxD
Goでandroid開発できるなら覚えてもいい
2014/06/21(土) 21:49:23.76ID:53WiPR/D
>>97
ぼくも(´・ω・`)
もっとハッテンしてほしいお
2014/06/21(土) 23:52:58.32ID:kf4Mlylv
>>99
煽りじゃなくソース教えて。
今更だけど go ってほんと検索しずらい
2014/06/22(日) 07:17:02.56ID:41dfNV8s
https://docs.google.com/document/d/1N3XyVkAP8nmWjASz8L_OjjnjVKxgeVBjIsTr5qIUcA4
Javaを置き換えるわけじゃなくて、Android NDKをGoで使えるようにするみたい
ゲームみたいなものならGoだけで書けるようになるのかな
2014/06/22(日) 12:52:07.50ID:m/E1htcB
>>98
kwsk
2014/06/24(火) 21:18:13.43ID:UpeRHjTe
人がいないからあんち米すらでてこな
106デフォルトの名無しさん
垢版 |
2014/06/24(火) 22:05:30.11ID:3jg/jifd
Go界隈で日本語コミュニティ必要ないからな
みんな英語できるだろうし
2014/06/25(水) 09:55:43.67ID:Z9ZnqfJz
コード見たら何やってるか大凡分かるって素晴らしいよね
2014/07/04(金) 23:14:50.75ID:4r2s5G7/
>>89 Androidって組み込みなんだけど。
2014/07/05(土) 07:54:31.48ID:fKreMhzC
>>108
アプリは組み込むでは無い
2014/07/05(土) 14:32:15.90ID:pTDYhgjU
>>109 環境的には組み込みソフトと同じだよ。
Hello World が、1MB何て許せるわけが無い。
基本ライブラリは端末組み込みで持つだろうから、Androidが標準装備すればもう少し小さくなるだろうが、今度はOSがでかくなる。
2014/07/05(土) 14:41:39.27ID:t0Gvg/Rs
気持ちはわからなくもないけどねえ
16Gや32Gストレージなんて当たり前なところで、OSが多少増えてどうこうと言われてもさすがに
2014/07/05(土) 15:43:21.74ID:pTDYhgjU
>>111 全てのアプリが何倍かの大きさになったら困るだろ?一つの話じゃ無いんだよ。
間、そんな事には成らないだろうがどのくらい大きくなるか未知数、今判断には時期尚早。

基本的には論外な大きさは悪
2014/07/05(土) 16:47:01.80ID:oA33QTWa
Androidでいろいろ作ってて感じるのは
今や主メモリやストレージを埋めるのは映像や音声のデータだっていう現実
コードが占める割合はかなり少なくなってきてる
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
2014/07/05(土) 18:03:15.49ID:cZxdkROZ
128GBしか無いからこんなのに無駄に容量使いたくない
2014/07/05(土) 19:01:05.54ID:9Der4WO0
Hello Worldから線形的に増えるわけじゃないけどね
2014/07/05(土) 19:14:06.90ID:oA33QTWa
>>114
各実行ファイルにgo用のランタイムがくっつくと考えると
356[MB] + 1822×(1065264[B] - 5532[B]) = 2.2[GB]じゃね?
実際はもうちょっと増えると思うが
2014/07/05(土) 20:55:34.60ID:5LgT0AK3
gccgo(v4.9) を使ってコンパイルしてみると 20KB 程度に納まった。
許容範囲?
2014/07/05(土) 21:42:25.12ID:tB+Rxz8c
100行にも満たないサンプル5個作っただけで1GB超えるとかバカかよ
2014/07/05(土) 23:28:12.02ID:rxWIrUjL
容量減らすためだけにポータビリティ捨てたくはないかな。

Rob PikeらはPlan 9の論文で動的リンクの問題点をあげつらってたから、
たぶん今後も静的リンクから変えない気がするし。
2014/07/06(日) 00:34:38.00ID:uI+Octwc
>>97 それってHTMLじゃないのか?
2014/07/06(日) 08:10:08.75ID:CKDdGv5O
やっぱそうなるのか
HTMLで描画の性能が出せるようになってきたから
ネイティブウィンドウに拘る必要は少なくなったのかな
123デフォルトの名無しさん
垢版 |
2014/07/08(火) 13:18:21.31ID:7GlSfkMD
https://github.com/andlabs/ui
ここでも見とけよカス共
2014/07/08(火) 13:19:55.85ID:ISJLHJAp
宣伝うける
2014/07/08(火) 13:58:51.40ID:PfuPMxra
おお、すげー何これ素敵
2014/07/09(水) 12:47:50.42ID:CPsLRvzn
goが動かせるクラウドってGAEしかないよね
2014/07/09(水) 13:53:57.91ID:Fp2x5STj
GoがExperimentalでphpがPreviewってことはGo版の正規リリースはまだまだ先か
2014/07/09(水) 14:56:08.07ID:SDA1RKlK
goって存在価値あるのか? NaCl PNaCl で事足りるだろ。

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

そういやDartも有るな。 あれはJavascriptの置き換えを狙ってるから目的がはっきりしてる。
2014/07/09(水) 15:06:03.08ID:V9xUyLw3
>>128
まったく意味不明だぞ
GoはNaClやPNaClと競合するものじゃない
2014/07/09(水) 15:17:14.55ID:SDA1RKlK
>>129 何がしたいの? NaClでサーバアプリも作らせたいようだけど。
2014/07/09(水) 22:41:26.96ID:8SChLIyJ
ファイルサイズが大きい言ってるから、hello worldの実行形式をreadelfしたら使ってなさそうなシンボルがうじゃうじゃいたけど、まだいろいろ工事中なのかい?
2014/07/16(水) 21:08:08.10ID:YrYvz6dv
実行ファイルのサイズ見るだけで期待の新言語感が綺麗さっぱり消滅するよな
静的リンクだからで許されるサイズじゃねーだろ。

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

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

firefox は勝手にメモリ使いまくって
2GB以上になったとたん固まって落ちるし
136デフォルトの名無しさん
垢版 |
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って何だよ。いやマジに。
2014/07/16(水) 21:36:44.42ID:18iWZycG
exerb
2014/07/17(木) 00:03:14.51ID:BuVewHPc
まぁ静的リンクすらわかってない奴だということはわかった
2014/07/17(木) 06:43:50.83ID:DnYQQN3M
わかってないのおまいだわ、上面だけ読んでレスやめとけw
2014/07/17(木) 07:10:02.53ID:/y/RnBj0
>>136

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

組み込みでは使えないってことだね
2014/07/17(木) 08:38:37.24ID:Emdyn2Mx
わかってるわかってないの水掛けこそ、上っ面の駄レスだろ
おかしいところを具体的に突いてやれば、言い返せないしこのスレの質向上にもなる
2014/07/17(木) 09:31:32.17ID:S5pGSZlh
そうだそうだ
2014/07/17(木) 10:45:11.17ID:h5c0LSEc
容量制限のあるクラウドとかVPSじゃ使えねえよ
2014/07/17(木) 12:27:33.98ID:q6z1PJAH
>>140 大きいと言う事は全てにおいて時間がかかると言う事なんだぞ。 つまりあらゆる面で生産性が低くなる。
そんな言語誰が使う。

作ってる奴がヘタレだとか基本設計自体に問題が有るとかさんざん言われてる。
2014/07/17(木) 12:35:36.25ID:sNTaX6ES
これね
http://s.kakaku.com/mag/pc/id=1676/
http://www.itmedia.co.jp/pcuser/spv/1407/17/news060.html
http://gigaz.in/1mOmuRj
2014/07/17(木) 13:13:00.43ID:Emdyn2Mx
誤爆?
2014/07/17(木) 16:46:46.06ID:MN+A29Er
Go は使う側にとって何かメリットをもたらすのか?

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

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

Go の公式REPLは有るんだっけ?
2014/07/17(木) 18:42:53.14ID:MN+A29Er
>>24 はい判りました。

for a in 0..<100 {
...
}

こんなんでました。 今注目の言語
2014/07/17(木) 19:44:48.46ID:S5pGSZlh
Swiftですやん
2014/07/17(木) 19:58:44.51ID:O9NXfjPR
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

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

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (十万石)     \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c
2014/07/17(木) 23:26:36.96ID:OTputfOO
そのうちhello worldで1GBを超えるバイナリを生成する言語が登場する
2014/07/18(金) 07:16:09.83ID:NmG7h+bv
googleが一番やりそうなこと
2014/07/18(金) 08:06:18.24ID:KrkzFLu9
最近のGoogleは自分で自分の首を絞め始めてる様に見えるな。
会社として収集がつかなくなってしまった感じ。
2014/07/18(金) 09:03:19.13ID:JbZ7Qo5I
いや昔からこのノリだけど
小さなグループ毎に好き勝手やってる感じ
むしろ最近は昔よりまとめようとしてる
2014/07/18(金) 12:50:52.86ID:DOB4ifCF
NaCl PNaCl > 速いスピード
Dart > Javascript の置き換え

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

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

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

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

Go は美味しそうな匂いがし無い。 並列処理?他の言語より美味しいか?
2014/07/18(金) 12:55:38.48ID:hMlFBsak
匂いがしないなら使わなければいいんじゃない
2014/07/18(金) 13:03:16.54ID:xJrLNwHb
googleはトラフィックに無頓着なんだよな
自社でキャリア持たないからかな
2014/07/18(金) 14:48:11.31ID:g/ns370x
>>136 のC言語の経験がHello, world!留まりということはわかった。
2014/07/18(金) 14:57:25.22ID:cGkLMo0w
hello worldが大きくてもそれの数百倍の大きさのプログラムをコンパイルしたら
数百倍の大きさの実行ファイルが出来るわけでは無いだろ
2014/07/18(金) 16:25:14.51ID:QbsI88lJ
>>159
全然無い。>>136はHello, world!留まりの赤ちゃんが疳の虫でグズってるだけ
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 }
}
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 に追加する
なりしてもいいし
2014/07/18(金) 22:51:30.47ID:Mqs0/spS
3項演算子はレガシーコードだな
うんこが現れたと言うことはGoも注目されてるのか?
2014/07/19(土) 05:03:22.62ID:SmxhOcgK
goのほうが言語仕様的には美しくて無駄が少ないと思うけど

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

SwiftはなんかまだObjective-Cのラッパーて感じ。
引数のラベル付とか。selectorが使える所とか。
2014/07/19(土) 08:42:00.07ID:JJLiNM0Q
まさに>>163
ってことなんだろうな
2014/07/19(土) 09:59:22.84ID:yYW1nc9J
とりあえずフレームワークを1つ覚えとけばいいかな
2014/07/19(土) 13:50:20.51ID:1hzYIwWV
>>164
>例外
例外文法削ったのではなく、例外自体削ったんだろ。パフォーマンス出すためにな
例外機構が必要な言語もある。

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

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

なんつーか、SwiftよりGoのが良いって前提で話してるよな。
どっちも良い所あるんだから、優劣付けずに話せばいいのに。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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