Go language part 1

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2013/10/10(木) 12:04:51.78
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
2014/10/05(日) 20:59:06.62ID:zjAXSCyt
Append(sliceA, sliceB[x:xx]...)で参照先の配列を領域確保1発でコピー出来るなら
MakeでCap指定した方が良いCopyの使いどころって無いよね?
2014/10/12(日) 13:22:57.12ID:e6aIROEn
vim-goとvim-go-extraどっちを使おうか迷った僕がvim-goを選んだ理由

・vim-goの開発が活発で将来性がある。vim-go-extraは進化しないと思った。
・利用者が多いから。
2014/10/12(日) 14:01:02.40ID:e6aIROEn
vim-go-extraはgolangに入ってたものを配布しているだけのようなものだからそれをいじっていくというスタイルではないと思った
2014/11/02(日) 09:24:08.49ID:r4spo6v1
Go 1.4で若干の言語仕様変更
http://news.mynavi.jp/news/2014/10/31/275/

ライブラリ作成と、そのライブラリの動的リンク機能マダー?
2014/11/02(日) 10:09:47.13ID:x5iq96Qv
変数無しRangeの使い道ってどんな時だろ
むしろforやifみたいに初期化文が置けるとスッキリするんだけど
2014/11/02(日) 11:17:59.44ID:r4spo6v1
1つ質問いいですか!
go言語ってコンパイルが早くて気に入ってるんだけど、
けど、なぜか突然コンパイルやテストが異常に遅くなったりする・・・
これの原因ってなんですか??
2014/11/02(日) 12:15:45.86ID:CjBmvnJw
ガベコレ
2014/11/02(日) 20:58:40.38ID:JPqAP6M3
AndroidのJavaがGoに置き換えられる日はいつかな
2014/11/02(日) 21:33:47.45ID:BYDmQ72k
それより先にChromeOSに飲み込まれる予感
でGoはGAEによるwebアプリとして、という形で置き換わ…らないかな…
2014/11/02(日) 22:09:45.10ID:uP+hCO1v
Javaは難しすぎるし文字列の連結も"a" + "b"みたいに+で書くのはダメでなんちゃらビルダーを使えとかでJava知らないとわかんないことも覚えないといけないからきつい
AndroidアプリはGo出かけるようにするべきだ
そしてJavaを切り捨てろ
2014/11/02(日) 23:29:08.56ID:6If1MJm0
Go「ちょっと出かけてくる」
2014/11/02(日) 23:40:50.47ID:dkfupOzq
Javaを斬りに行くのか
2014/11/06(木) 09:31:48.41ID:Yj3faNE/
goimportを11/9までに変えろってツイートのタイムラインで流れてきたけどどうやって変えるの?
.bashrcとかでpathを設定しろってこと?そんな設定した覚え無いよ
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')
2014/11/06(木) 10:14:37.36ID:Yj3faNE/
英語わかりません><
ソースコードって自分が書いたソースコードだけですか?
それともgo getでインストールしたのとか/usr/local/go以下のも全部ですか?
2014/11/07(金) 02:16:51.54ID:h+JOAERE
今後、ART+golang vs iOS+swiftの対決になる。
2014/11/07(金) 10:31:39.22ID:s6Ia4x9k
そうか、ARTはLLVMだから、高速化のみならず、ここからGoやPythonまで巻き込んでいく可能性もあるのか
2014/11/07(金) 10:38:27.06ID:xYnXm+N7
Clang+LLVMみたいにGolang+LLVMになるって事?
2014/11/11(火) 12:41:50.08ID:wdqJ9aU+
Happy birthday to you,
Happy birthday to you,
Happy birthday, dear golang〜♪
Happy birthday to you〜♪
2014/11/11(火) 13:33:55.75ID:7vWNWhS8
見上げて golang 夜の星を
小さな星の 小さな光が
ささやかな幸せを うたってる
2014/11/16(日) 03:04:27.57ID:DLuhiTiM
Google's Go To Move From Mercurial To GitHub
http://www.phoronix.com/scan.php?page=news_item&;px=MTgzODc
2014/11/16(日) 07:32:46.53ID:01IXT5Y2
むしろGitHubじゃなかったんだ、意外
2014/11/16(日) 08:29:57.40ID:lR2mulvd
goto 禁止
2014/11/16(日) 09:02:44.60ID:DyeXwdqD
今、TCPクライアントを書いているんですが、
テストで、サーバー側でCloseされたnet.ConnにWriteしても、
1回目は何のエラーも返さないんですが、なぜだか分かる人いますか?
2回目でbroken pipeと言われます。
2014/11/16(日) 09:32:08.90ID:DyeXwdqD
すみません、ググったら解決しました。
http://grokbase.com/t/gg/golang-nuts/13570n38b0/go-nuts-why-net-conn-write-still-workable-on-disconnected-socket-tested-on-go1-1rc1
2014/11/16(日) 14:08:08.00ID:zDSUi8Bd
うん知ってたよ
2014/11/17(月) 17:21:35.06ID:zuuyG41U
そろそろGoのイディオムに沿ったリファクタリング本が欲しい
今までの物でも通じなくはないけど違和感がある
367デフォルトの名無しさん
垢版 |
2014/11/17(月) 21:09:13.40ID:brk9wiVx
本がないと駄目とか馬鹿も大概にしろ
2014/11/17(月) 22:16:15.49ID:ppTtjJs6
消えろ少数言語
2014/11/17(月) 22:40:13.14ID:VgYWB20P
少数言語の存在を目障りに感じる奴って、脳のどこが壊れるとそうなるんだろうねw
2014/11/17(月) 22:43:04.06ID:C7tq3SGo
むしろこれは伸びてくだろ
2014/11/17(月) 22:52:12.08ID:Ogg/6z+g
本は俺もほしいなぁ
ってか、本とかまともにないと絶対普及しないと思うし。
誰か本書いてくれないかなぁ(チラチラ
2014/11/17(月) 23:10:56.23ID:ppTtjJs6
うるせー社員
Googleマップで見つけたチンパンジーとGo言語しゃべっとけよ、アホ
2014/11/18(火) 00:10:29.13ID:pFMenGyU
失望した
2014/11/18(火) 00:13:06.84ID:zcJbx4rP
失禁した
2014/11/18(火) 11:45:48.09ID:WPotnA1T
インタフェースは遅くなると思って使わないようにしてたが
試しに使ってみたら便利すぎてフイタw
2014/11/18(火) 14:17:21.30ID:f2ThsyRx
どう便利かPHPerの僕に教えろ!
2014/11/20(木) 17:31:22.49ID:YC7+DKYP
男「よろしくお願いします」
面接官「で、君は何の言語ができるの?」
男「Goができます」
面接官「他には?」
男「Goだけです。Go一筋なんです」
面接官「面接を終了します。結果は後日
お知らせします。ありがとうございました」
2014/11/20(木) 17:40:23.96ID:YC7+DKYP
男「よろしくお願いします」
面接官「で、君は何の言語ができるの?」
男「Goができます」
面接官「え、囲碁は言語じゃないですよ」
男「囲碁じゃなくてGoなんです」
面接官「はあ? 言ってることがわかりません。面接を終了します。
結果は後日お知らせします。ありがとうございました」
2014/11/20(木) 17:42:10.67ID:oY1GPGoB
PHPerの自己投影かw
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!」
2014/11/20(木) 17:58:59.99ID:B4HwyTzw
        (~)
      γ´⌒`ヽ
      {i:i:i:i:i:i:i:i:}       
      /´⌒ヽ  )     ツマンネw
     (   __ )つ ⌒゚
' '''"''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ゙ ゚ ゙''` `
2014/11/20(木) 20:50:01.64ID:0cDVql0w
じゃ次はsheでよろしく
2014/11/20(木) 23:00:01.41ID:1ob9Wc7O
いち
にー
さん
しー C の次だから
ごー Go
なんだろ?
2014/11/20(木) 23:08:50.77ID:vc5Nijr7
Java(Sun microsystems)
C
Go
Heroku
2014/11/20(木) 23:24:25.14ID:4zN84dTB
Where should we go to??
2014/11/20(木) 23:26:15.06ID:1ob9Wc7O
next C な名前の言語はたくさんあるな
C++, D, C#(c++++), Go
2014/11/20(木) 23:29:04.83ID:zf12BS4g
俺も死の次ってことでheaven言語作ってくるわ
2014/11/20(木) 23:29:44.04ID:zf12BS4g
糞スペル
2014/11/21(金) 10:22:44.31ID:OG/Y7Xo1
[仕事量]
PHP>Go
[利用者]
PHP>Go
[実績]
PHP>Go

トリプルコンボでPHPerの勝ち
Goferもっと頑張りたまえ
2014/11/21(金) 10:59:25.46ID:Iey8mlHv
PHPはちょっと…
2014/11/21(金) 12:16:17.06ID:RKwctBBa
カンマ入り数値からカンマ外すのは、これ以外に無い?
strings.Replace("15,180,000", ",", "", -1))
2014/11/21(金) 12:20:45.57ID:UnHbl35a
配列にして結合
2014/11/21(金) 13:47:11.98ID:RKwctBBa
SplitしてJoinかな
ベンチマーク取ってみるよアンガと
2014/11/21(金) 14:09:37.19ID:RKwctBBa
BenchmarkSplitJoin  10000000 277 ns/op
BenchmarkReplace   10000000 177 ns/op

こんな感じ
2014/11/30(日) 09:07:03.18ID:NdiYUZYS
合コンおーいぇー
2014/12/02(火) 05:14:09.00ID:Mms1FSAQ
インストールしようとしてググってたら、
公式だとtar落として自分で展開してpath通せって書いてあるんだけど
EPEL参照でyumからインスコ出来るっぽい
公式でそっちにしないのは、この方法だとなんか不都合あるんだろうか
2014/12/02(火) 07:38:42.44ID:vquYws+a
今は知らないが、俺が apt で入れたときは
go get でシステム領域を汚そうとしたから止めた。
2014/12/02(火) 18:04:09.77ID:Mms1FSAQ
>>397
それって使わなくなった時に削除するのがめんどいってのがデメリットなのかな
アップデートとかも全部yumでやるから別にいいかなぁ…
どもども
2014/12/03(水) 03:59:06.16ID:xemfXL8Z
yumからのインスコで使うことにしたけど、
一個めんどくさい点があった
GOROOTを設定しないとbuildとか出来ない
pathにバージョンとか入ってるわけじゃないので
バージョンアップするたびに環境変数修正ってのはなさそうだけど
400デフォルトの名無しさん
垢版 |
2014/12/04(木) 19:17:39.60ID:FmXLQYZZ
公式はepelじゃないんだから妥当だと思う。
でないとepel自身がパッケージ作れんがな。
401デフォルトの名無しさん
垢版 |
2014/12/08(月) 01:06:16.96ID:jJwEDCVJ
AngoIMEで書いているで

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

BPS時代がきたわ
問題はJKが隣にいないことやw
2014/12/08(月) 01:23:42.15ID:gpxOhL3D
BPSならJSだろう
2014/12/08(月) 13:00:08.49ID:y0p0oDrX
洋館マソ
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って別に参照専用ってわけでもない連想配列ですよね?
なんでコケるんでしょうかこれ…
2014/12/10(水) 22:38:54.56ID:hVfFOG57
面倒くさいけど、こんな風にするみたい

ptr := m["Bell Labs"]
ptr.Lat = float64(1)
m["Bell Labs"] = ptr

Issue 3117: cannot assign to a field of a map element directly: m["foo"].f = x
https://code.google.com/p/go/issues/detail?id=3117
2014/12/10(水) 22:47:12.63ID:3ZzrTcyc
>>405
私の認識や手順が違うとかじゃなく、ほんとにそのままでは出来ないんですね
でもwork-aroundって書いてるからそのうち直す的な感じなのかな
2年前ってのがあれですがw

ともあれ、ありがとうございます。
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で表示されないんですか?
2014/12/11(木) 15:49:25.67ID:SBn2bhiW
>>407
http://golang.jp/install#install
2014/12/13(土) 12:01:31.39ID:BVSGhnq7
>>404
structは値型だからね
m["unko"]はmに格納されてるVertexのコピーが返される
これに修正加えても反映されないよーっていうエラー
だからそう言う書き方がしたいなら
map[string]*Vertex
って宣言するといい
2014/12/13(土) 12:12:47.84ID:imyzRhSY
>>409
var m map[string]*Vertex

func main() {
m = make(map[string]*Vertex)
m["Bell Labs"] = &Vertex{
40.68433, -74.39967,
}
m["Bell Labs"].Lat = float64(1)
fmt.Println(m["Bell Labs"])
}

これで行けました。ありがとうございます!

便乗で質問なのですが、
var m map[string]*Vertex
mapに関しては個人的に全部これでいいんじゃないかなと思ってしまうのですが
リファレンス型(ポインタ型?)を使うデメリットってあるんでしょうか。
自分で思いつくのは、
           値                リファレンス
メリット       ?               アドレス情報にしかメモリを使わない
デメリット    コピー分メモリを食う     ソースがやや煩雑に

とう感じなのですが…
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

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

>>412
sliceは参照型だからね
それ自体でポインタみたいなもんだから直でいける
2014/12/13(土) 23:01:44.70ID:imyzRhSY
>>413
遅くなりましたがありがとうございます!
2014/12/29(月) 23:22:29.55ID:QuoLDkEA
高階関数ってリフレクションしないと駄目っぽいな
せっかく関数が第一級オブジェクトなのに何か勿体ない
2015/01/06(火) 02:43:41.06ID:zpgKMgJd
mattnさんgo本書いてくんないかなー
2015/01/06(火) 17:32:14.22ID:M3VR0ni5
俺もmattn本に+1
言語仕様の説明よりもスーパーサンプル集的な書籍が欲しい
2015/01/06(火) 21:00:48.30ID:h8AkEaym
誰でもいいから本出してほしい
多少高くてもいいから。できれば一人でなく複数人
2015/01/07(水) 09:21:21.81ID:AOiER/0b
もう出てるけど、もっと深いのが欲しいのか?
2015/01/07(水) 14:46:54.67ID:e24S5a9I
androidで盛り上がれば本も増えるだろうな
2015/01/07(水) 19:22:58.91ID:cvGCzuKQ
>>417
ほんとこれ
言語仕様やライブラリ仕様はリファレンスが十分過ぎるぐらい充実してるしな
2015/01/07(水) 23:22:36.07ID:TubS6YKr
マトン先生今年はヒツジ年だからなんか出すはず!
2015/01/08(木) 12:15:26.41ID:r59ZtkkO
配列の最高値とインデックスを返すような多値関数から
最高値だけをAppendしたい場合、一旦変数に受けないと無理?
2015/01/08(木) 16:15:54.59ID:SnsO6Hw4
なぜmattunさんはチンチン丸出しの素っ裸なのか…
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)
}
2015/01/08(木) 20:48:39.89ID:r59ZtkkO
>>425
凄い、全然思い付かなかったです
勉強になりました。ありがとう
2015/01/08(木) 23:08:21.81ID:JAYi2dXH
即時関数か
golangでも出来るんやな
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
こうなるんですが
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()
}
2015/04/27(月) 03:14:20.43ID:0ybKBVZB
http://ideone.com/4EFjar
pop()と同じ動作を想定して, pop1() pop2()をかいてみたんですが
どちらも r=4 になってしまいます
goで式の評価順はどうなってるのでしょうか?
2015/04/27(月) 08:55:25.98ID:SK92dx/y
>>430
appendって領域が十分なら上書きしちゃったりするんじゃなかったっけ?
2015/04/27(月) 11:53:03.95ID:0ybKBVZB
>>431
上書きされてました ありがとうございます
2015/05/27(水) 08:44:30.80ID:CaoeGQX/
main関数を他の関数の上に持っていくか下に持っていくか迷ってるんだけど
ルールがあったりする?
2015/05/27(水) 12:03:24.54ID:KwGlDoiU
C(K&R)ならともかくGOじゃないっしょ
無いよね?
2015/06/03(水) 23:41:10.45ID:WPfxguwe
Cじゃねえんだから好きにしろよ
436デフォルトの名無しさん
垢版 |
2015/06/05(金) 22:59:12.97ID:kU15dp2l
Cとか書いた事も無いので何で後ろに有るのか不思議に思ってたけど
ググってスッキリした
2015/06/07(日) 17:29:20.20ID:rVbuZbAc
A Tour of Go(日本語版)のフィボナッチ数のExerciseはテストされないのか
2015/06/10(水) 19:04:40.57ID:vRKJ93PX
A Tour od Go 日本語訳が色々辛い
2015/06/11(木) 20:17:20.73ID:7zT8SS54
go build はカレントディレクトリに実行ファイルを生成
go install は go build に加えて実行ファイルをGOBINに移動させる

って理解であってる?
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がクライアントサイドで動くかも?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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