Go language part 2

■ このスレッドは過去ログ倉庫に格納されています
1
垢版 |
2017/11/11(土) 19:25:26.19ID:X8lWnCzG
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式ドキュメント
http://golang.org/doc/

日本語訳
http://golang.jp

※前スレ
Go language part 1
http://mevius.5ch.net/test/read.cgi/tech/1381374291/
2019/01/17(木) 02:16:19.75ID:jQ16lSTt
あーごめんこれ
https://go-tour-jp.appspot.com/methods/20

■正答とされているもの
func (e ErrNegativeSqrt) Error() string {
return "cannot Sqrt negative number: " + fmt.Sprint(float64(e))
}
func Sqrt(x float64) (float64, error) {
if x < 0 { return x, ErrNegativeSqrt(x) }
}

実際やるなら普通こうだろ!と思った答え

■その1 fmt.Errorfつかう
func Sqrt(x float64) (float64, error) {
if x < 0 { return x, fmt.Errorf("cannot Sqrt negative number: %f", x) }
}

■その2 interfaceで揃える
type FloatValue float64
func (x FloatValue) Error() string {
return "cannot Sqrt negative number: " + fmt.Sprint(float64(x))
}
func (x FloatValue) Sqrt() (float64, error) {
if x < 0 { float64(x), x }
}
func main() {
o := FloatValue(2)
fmt.Println(o.Sqrt())
}

typeにErrorを実装することでinterfaceの条件を満たせるんですよってのが演習の目的なんだと思うけど、実際こんな実装するの?って疑問に思った。行数限界
2019/01/17(木) 02:23:39.13ID:jQ16lSTt
>>553
リンク先ちゃんと読んでなかった
いろんな回答例出てるのね

ただ出題の前提条件はやっぱおかしいというか、無理がある気はする

新しい型:
type ErrNegativeSqrt float64
を作成してください。

こんな事普通しないよね?
という話でした
明日にでも読んでみますわブログ
2019/01/17(木) 08:27:18.50ID:fKvosqrp
>>555
普通するかどうかは問題じゃない
言語の機能を一通り学ぶことがチュートリアルの目的なのだからね
2019/01/17(木) 09:30:20.17ID:xvRRAtaT
>>556
ユースケースって大事だと思うけどなぁ
最初何やってるか、何やろうとしてるか理解できなかったし
2019/01/17(木) 09:32:44.24ID:xvRRAtaT
あとここに書いたのは、
正答の例って使うシーン無いよね?ってのが本当にわからなかったからでもあります(´・ω・`)
2019/01/17(木) 10:58:58.69ID:OJEKhktg
> こんな事普通しないよね?
golangではする
2019/01/18(金) 04:19:34.68ID:UbZsPaza
>>555
エラーの型を作るのは深いところからerrorが戻ってきたときに何のエラーか特定できるようにしてエラー次第で処理を分岐するためなのではないの?
2019/01/18(金) 09:28:00.56ID:v7oCtyd7
>>560
戻ってきたときにはエラー型になってるから型判定は無理で、
メッセージで判定するならその階層のために型を作る必要が無いのではなかろうか
まだ上のリンク読んでないから、違ってたらすまん
2019/01/18(金) 10:16:32.64ID:2VRqEJOo
エラーってインターフェースだから、タイプアサーションで型判別は出来るんでないかい?
2019/01/18(金) 10:36:45.47ID:v7oCtyd7
>>562
ありがとうございますorz
なるほどswitch型アサーションしてエラー処理出来るのね。。
2019/01/18(金) 23:27:56.14ID:UbZsPaza
goに関係なくインターフェースって言葉自体を理解してなさそう
565デフォルトの名無しさん
垢版 |
2019/02/07(木) 07:54:44.36ID:2dIEVy9q
すまんがA Tour of Goの次はどこ行けばいいの?
さしあたっての到達地点はgRPCでWebAPIを書くことなんだけど、おすすめがあったら教えて
566デフォルトの名無しさん
垢版 |
2019/02/15(金) 13:13:33.89ID:tmAyxTCx
これってなんで通らないんですか?
https://go-tour-jp.appspot.com/moretypes/18

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {

image := make([][]uint8, dy)
for y := 0; y < dy; y++ {
image[y] = make([]uint8, dx)
}

for y := 0; y < dy; y++ {
for x := 0; x < dx; x++ {
image[y][x] = uint8((x + y) / 2)  //14行目
}
}
return image
}

func main() {
pic.Show(Pic(10, 10))  //21行目 pic.Show(Pic())なら通る
}

エラー内容
prog.go:21:14: cannot use Pic(10, 10) (type [][]uint8) as type func(int, int) [][]uint8 in argument to pic.Show
2019/02/15(金) 15:36:27.49ID:NcZfuZLG
引数が間違ってるからでしょ、pic.Showは、f func(int, int) [][]uint8、これを受け取るのだから
その書き方だと、[][]uint8しか受け取ってない、因みにpic.Show(Pic())も通らないはず
pic.Show(Pic)なら通る
568デフォルトの名無しさん
垢版 |
2019/02/15(金) 15:55:26.11ID:tmAyxTCx
そうだったのか、そもそもを全く勘違いしてたよ
Pic()の戻り値である[][]uint8を渡してるんじゃなくて、Pic関数を渡してるのか
ありがとう
2019/02/19(火) 05:27:35.05ID:C9gbV6OD
go
https://pc12.5ch.net/test/read.cgi/tech/1257920595/ 2009年に華々しく初登場。3日で消化
Go part2
https://pc12.5ch.net/test/read.cgi/tech/1258183436/ まだまだ衰えず10日で消化
Go part3
https://pc12.5ch.net/test/read.cgi/tech/1259072043 だいぶ落ち着いてきた3ヶ月で消化
Go part4
https://pc12.5ch.net/test/read.cgi/tech/1265620273 ほぼ1年で消化。すっかり普通のスレに。
Go part5
tech/1327216227/ 17res。オワコン
Go 総合スレ
tech/1342535690 再建。しなかった。4resでアイちゃんフィニッシュ
Go の宿題片付けます
http://mevius.5ch.net/test/read.cgi/tech/1257968644/ part1の頃立った残骸。

Go language part 1
2013年開始、4年で消化。
https://mevius.5ch.net/test/read.cgi/tech/1381374291/
570デフォルトの名無しさん
垢版 |
2019/02/19(火) 11:08:52.79ID:0LEc4aEd
Goのシンプルさを再認識した
これ(・∀・)イイネ!!
571デフォルトの名無しさん
垢版 |
2019/02/19(火) 19:18:38.14ID:Hn3cTwGv
Mapがない言語から来たんで、どう役に立つのかよう分からん
よくある辞書型とはちがうんか?
2019/02/19(火) 22:31:32.89ID:8ne5Wfny
namespace周りはもう少しなんとかなりそう。
検索するのが意外と不便。
2019/02/19(火) 23:29:09.12ID:ZdX/S/li
>>571
https://github.com/gorilla/websocket/blob/master/examples/chat/hub.go

> type Hub struct {
> // Registered clients.
> clients map[*Client]bool

最近見てへーと思ったwebsocketのサンプルチャット
typeのポインタをmapのkeyにしてる
574デフォルトの名無しさん
垢版 |
2019/02/26(火) 15:19:01.78ID:WzOzVnpy
1.12リリースあげ
TLS1.3自前実装とは恐れ入る。
2019/02/26(火) 21:17:21.73ID:7qae/qvt
TLS1.3ってHTTP/3.0とセットじゃなかったっけ?
2019/02/26(火) 22:15:32.04ID:JWRoCYQ3
全く知らないんだけどちょっとググったんだけど
HTTPS的なものなの?
2019/02/26(火) 23:10:40.23ID:8PapgKsZ
http/3とセットなのはquic
quicはtls 1.3を参考にしてるけど別物

httpsのs (secure) 部分の最新仕様がtls 1.3
2019/02/27(水) 09:18:36.45ID:gzx7LPiY
>>577
それだ
2019/03/18(月) 09:30:47.58ID:BnxqPK5t
go案件は増えてきてるのにここの書き込みが少ないのは5chの人気が衰退してるってことなん?
2019/03/18(月) 17:51:45.26ID:VkTfSOi0
うん
新しいものに敏感な今の若い子は5chを見ない
2019/03/18(月) 20:15:25.92ID:0/u0gdEf
2chの代わりってどこなんだろう
Teraなんとかとqiitaなのかな
2019/03/18(月) 21:03:22.79ID:Y/68aGXR
genericsが正式リリースされたら使ってやろうと様子見。
2019/03/18(月) 22:29:22.94ID:43ehcaaK
ジェネリクスが入ったら、インターフェイスで書くのはレガシーになるんだろうか
584デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:35:05.51ID:67gxljOa
goで書くのがレガシーになる
2019/03/18(月) 22:36:37.66ID:43ehcaaK
すごく愚地独歩のAAが貼りたい
2019/03/18(月) 23:13:13.98ID:v97XaEjW
Goは難しすぎる
Cに挫折して流れてきたけどCの方がまだわかりやすいと思える
2019/03/18(月) 23:54:00.66ID:iRq0tZYn
C で書いてればいいんじゃないかな
588デフォルトの名無しさん
垢版 |
2019/03/19(火) 03:49:05.14ID:vA05CjP0
一体どこが難しいんだ?
2019/03/19(火) 08:32:38.96ID:I7qsVtc5
良かった、やっぱり人居たじゃん。
という釣りだと思うけど
2019/03/19(火) 11:04:06.77ID:VfZfEcG5
難しくはないけど直感的じゃないしコードの見た目が汚いとは思う
2019/03/19(火) 13:45:39.16ID:TCRm19hz
チュートリアルはGoが一番難しかった
592デフォルトの名無しさん
垢版 |
2019/03/19(火) 17:06:49.75ID:vA05CjP0
そういや、チュートリアルのクイズはなにを求めてるのかよく分からんかったな
2019/03/19(火) 22:40:42.46ID:5hu8jrnM
例外機構できるまで待つ
2019/03/19(火) 23:19:38.82ID:4grVnpE9
例外はなくていいけどResultは欲しいな。
2019/03/20(水) 08:08:08.27ID:9rInZAd6
>>590
ああそれだ
俺みたいにコードを論理ではなく見た目で直感的に解釈するタイプの人間には果てしなく合わない
やっぱこれを作ったグーグルの秀才たちの感性は俺とは違うんだなと思った
2019/03/20(水) 15:44:35.82ID:VJugh5Jc
春休み?
2019/03/20(水) 17:52:20.55ID:aiRFbeck
>>590
慣れの問題じゃね?
2019/03/20(水) 19:53:27.76ID:WQxU3kPV
見知っている言語と似ているようで微妙に違う、不気味の谷を感じることはある。
丸括弧の使い方とかinterface{}とか。contractはさらにキモいな。
2019/03/20(水) 22:20:42.41ID:gnUNocz6
C作った人がCじゃないものを作ったわけで
他の言語はCの影響どっかしら受けてるだろうから
別物になるのは当然っちゃ当然なような
600デフォルトの名無しさん
垢版 |
2019/03/25(月) 20:59:16.24ID:QNpRgxgp
QiitaじゃGoとかScalaがもてはやされてるけど実務でガッツリ使ってる企業って1%もないよね?
601デフォルトの名無しさん
垢版 |
2019/03/25(月) 22:46:04.19ID:9YEdKAJP
Goはそこそこ使われてんじゃん
ただGoでの求人はないだろうな
2019/03/25(月) 23:05:45.87ID:2YtgGbIg
>>601
Goの求人普通にあるよ

https://jobs.atcoder.jp/offers/125
2019/03/26(火) 15:30:06.80ID:awRDKjDw
Scalaがもてはやされてたのは2017年頃までやろ
昨年は既に空気やで…
604デフォルトの名無しさん
垢版 |
2019/03/26(火) 18:04:34.12ID:cgBb6Hz7
よくサーバサイドのエンジニアがJavaScriptの流行り廃り怖すぎwって言ってるけど最近はサーバ側の方が激しくない?
2019/03/26(火) 18:52:03.59ID:QZEMb5bF
scala嫌いではないけど万人に好かれるような言語じゃないよな、理想に走りすぎてて使いにくいというか
いまscalaかKotlinか選べるなら100人中98人はKotlinを選ぶだろう
2019/03/26(火) 19:18:34.52ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 83890
https://you-can-program.hatenablog.jp
2019/03/26(火) 19:28:10.27ID:Aj1/fk0o
Rustってあったよね
2019/03/27(水) 01:45:12.87ID:TDbGSxUD
プログラミング言語ランキング
https://www.tiobe.com/tiobe-index/
2019/03/27(水) 09:35:56.53ID:xAGOR9rx
情報工学を学んでいない者にも使える言語がこの先生きのこる
GoやJavaScriptみたいな大雑把な言語設計でも直感的に書けるのは大事
610デフォルトの名無しさん
垢版 |
2019/03/27(水) 12:54:22.74ID:oCr3DMVv
何だかんだでJava、JavaScript、PHPが30,40年後も生きてると思う
ぶっちゃけこの3つだけできてれば一生食ってはいけるんだろうな
2019/03/27(水) 13:16:53.05ID:HozmnXdp
20年前はcgiと言えばperlだったし
動的なWebコンテンツと言えばフラッシュだった
PHPのCMSと言えばPHPNukeが当たり前だったし
それ以前はそもそもCMSが無かった

先の事なんて判らんよ
2019/03/27(水) 13:49:53.09ID:8+dvmujN
今のWebの新規開発はrubyかpythonってイメージある
613デフォルトの名無しさん
垢版 |
2019/03/27(水) 13:55:14.82ID:pcLTDbG6
静的、動的、関数型を一つずつマスターしてれば時代の流れとともに簡単に乗り換えできるし

最初のうちはJava、PHP、Scalaとかでいいんじゃね
2019/03/27(水) 16:23:23.61ID:MZI2BUMS
今だったらJava(Kotlin)、Python or Ruby、Go
でいいんじゃね
2019/03/27(水) 16:26:35.68ID:8+dvmujN
Go、rubypython、node.jsだな
2019/03/27(水) 17:36:50.12ID:mYpNiGbv
とりあえず、ここGoのスレだからGoは入れようか
他は何でもいい
2019/03/28(木) 17:20:34.25ID:ngYLl8+K
Kotlin, Go, Python, TypeScript
618デフォルトの名無しさん
垢版 |
2019/03/28(木) 21:40:28.66ID:qG6/t6v7
JavaScriptでちゃんと実務ができれば他の言語とか全部余裕だと思ってる
ブラウザが変わると挙動が変わったりするのは本当にきつい
俺にはフロントは無理
2019/03/28(木) 22:28:51.27ID:RTy2uIrJ
Go,Gopher||JSSyscall/js,Otto
2019/03/28(木) 23:21:03.35ID:EVp1RRUC
>>613
静的で動的で関数型なTypeScript最強ってか。
2019/03/28(木) 23:35:37.40ID:xPHd8vQ+
小中学校でプログラミング必修化だそうだ
俺ら失職じゃん
小さな頃から仕込まれた才能にはとても太刀打ちできん
2019/03/29(金) 00:08:34.06ID:HBfTl8Rk
職業プログラマで才能が〜とかなるシーンてほぼ無いような…
623デフォルトの名無しさん
垢版 |
2019/03/29(金) 06:43:30.93ID:Z+kXKS+Y
結局のところ授業は国数英社理が9割ぐらい占めてるし
音楽とか美術ぐらいの頻度でプログラミングを学んだところで実務レベルになるとは思えんわ
624デフォルトの名無しさん
垢版 |
2019/03/29(金) 07:05:27.93ID:Eeymx9+7
>>621
そもそも論理的思考は算数・数学で鍛えられるのに、今まで何やってたのかと。
2019/03/29(金) 09:28:53.44ID:SpZcrlq4
そもそも教える側がね…
2019/03/29(金) 10:08:52.13ID:6hr19WHU
論理国語はAI羊の夢を見るか
2019/03/29(金) 12:15:00.12ID:7zh2u6Hb
>>621
家庭科で料理を教えるけど料理人は失職してないよ
2019/03/29(金) 13:48:59.64ID:juNwkiw7
料理は人間の食欲に直結する
人間は食べずに生きていく事は出来ない
しかしプログラムは無くても生きていける
いわんやプログラムを書く事をや
2019/03/29(金) 14:12:39.19ID:iSLBjstO
プログラムを自分で書かなくても生きていけるけどプログラムが消滅したらもはや生きて行くのは無理なのでは
2019/03/29(金) 15:43:21.44ID:uAFTUM3X
俺も学生当時は数学なんて勉強しなくても生きていけるって言ってた
631デフォルトの名無しさん
垢版 |
2019/03/29(金) 15:45:16.74ID:vtRxnavA
英語もしかり
いわんや古典
おや誰か来た
2019/03/29(金) 23:54:05.13ID:Xi/8VL1l
>>624
自分は数学が極めて苦手なんだよ
高校入学後の数学のテストで三回連続零点取って呼び出しを食らったほど
三角関数や微分積分はおろか分数の計算すら全くわからない
だから普通に数学のできるヤツがプログラマーに大量進出してくるとすぐに失職する
2019/03/30(土) 19:48:22.80ID:1zV6Aype
https://i.imgur.com/Am4Mdur.jpg
PHPのディスられっぷりがすごい
2019/03/30(土) 21:01:59.66ID:3+xZRkPe
>>633
Perl が日本刀か、Ruby は何の工具よ?
2019/03/30(土) 21:50:16.83ID:lGLh1ez1
>>634
サーベルソーとかレシプロソーって言われる電動ノコ
2019/03/30(土) 21:52:15.57ID:lGLh1ez1
Haskellは道具ですらない
2019/03/30(土) 22:49:28.96ID:IgRRO9Cp
アセンブラは石斧だろ
638デフォルトの名無しさん
垢版 |
2019/03/31(日) 07:22:47.15ID:OmwVKJ3k
プログラミング言語はモダンで緩い職場につくための道具である
2019/03/31(日) 22:40:23.86ID:IIeeMGDg
structの拡張記法でjsonをそのまま返せるし、web APIを書くための言語としては最高だと思うけど
世の中、そんなにAPIを書くような仕事があるのか?
食いっぱぐれ無いためにsalesforceかintra-martを触るわ
あと、中枢都市はjava案件が多いけど地方は中小企業向けの業務アプリ開発ばかりで.netばかりだからな
オフショアの二次請けなんかになってくるから、ハロワへ行くと手取り15万円とかザラ
誰がプログラマなんてなるんだよw
2019/03/31(日) 23:32:14.85ID:IIeeMGDg
web APIは、golang + micro serviceに流れるだろうけど、業務システムはjavaから変わることねーわ
新しい言語を躍起になって覚えるぐらいなら、習得済みの言語でソフトウェアの1つでも書けよ
2019/03/31(日) 23:40:11.77ID:TiMroEot
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

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

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (十万石)     \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c
642デフォルトの名無しさん
垢版 |
2019/04/01(月) 03:04:51.52ID:OA8CryLM
>>639
ハロワで30万以上の無いんですかって聴いたら
いまどきそんなのあるわけないでしょって諭された
日本おhる
643デフォルトの名無しさん
垢版 |
2019/04/01(月) 05:01:15.53ID:q1+BlY1d
プログラミングで食っていきたいなら東京近辺に住んでないと本当に人権が無いからな
東京以外だと手を動かさない営業モドキの業務系SEになるしか稼げる道がないのは可哀想だと思う

経験2年のフリーランスプログラマーに60万円とか東京以外じゃ絶対に払わないだろうし
644デフォルトの名無しさん
垢版 |
2019/04/01(月) 05:13:22.77ID:nupuKBr/
業務系アプリは作ってほぼ終わりだからオフショアが成立するけど
Web系アプリは運用がメインだからオフショアは無理だと思う
というか未だにJavaとか.netとか言ってる化石がGoのスレにいるのはウケるな
645デフォルトの名無しさん
垢版 |
2019/04/01(月) 06:54:37.01ID:LvvqAM+n
業務系の雑魚がプログラミング語ってるの見ると本当に笑える
2019/04/01(月) 08:52:57.52ID:ymg/4x83
YouTube で有名な雑食系エンジニア、KENTA の動画を見れば?

基本的に、間に会社を通すと、3割抜かれるので、
1次受け、2次受けとドンドン抜かれていくので、直接受注が理想

身分による還元率は、
社員なら、3割。その代わり仕事が無くても、給料がもらえる。
派遣なら、7割。その代わり仕事が無いと、給料もない。
フリーエンジニアで、エージェントを使うと、9割

ただし、フリーエンジニアは個人事業主だから、
サラリーマン控除(給与所得控除)が無いから、50〜100万円ぐらい税金が増える!

厚生年金も無いから、年金額も少ない。
サラリーマンは、厚生年金の半額を会社が払うから、所得が少なくてもリッチ

それに個人事業主には、組織という後ろ盾がなく弱いから、
だましたり金を払わない客が、積極的に寄ってくる

この辺の仕事は、だましあい。
ヤクザと同じ。如何にアホをだまして稼ぐか
2019/04/01(月) 09:27:46.31ID:7bgyHR1w
>>644
大学サークルみたいな集まりの売れない自社サービスなんて赤を垂れっぱなしだよ
宅配ドライバーの契約社員の方が給与マシってレベル
これで地方から人が居なくなるとか言うもんだから笑えてくる
648デフォルトの名無しさん
垢版 |
2019/04/01(月) 11:57:28.15ID:bzrp4n7u
マ板でやれ
2019/04/04(木) 11:16:37.06ID:Vlx3tFA+
>>644
.net最近イケてるぞ。
2019/04/04(木) 19:28:02.99ID:TpBRvgpe
>>649
.Netは生まれながらのイケメン
2019/04/05(金) 08:00:22.21ID:SluFpjGG
>>650
最近垢抜けたよ、マジで。
Windows一族感を一歩脱出して、クロスプラットフォームも.Net coreで攻めてきてるし。
ベンチも悪くない。
最近Goと両刀使いしてる。
2019/04/05(金) 23:53:03.38ID:lYJMaqmI
golangって、RESTful APIを書くぐらいでしょ?
.netって、C/S系の仕事ばかりだと思うんだけど
この2つの言語を扱うプロジェクトって、同時にやるようなものなのか
プログラマってのは工場のラインや期間工と変わらないですよ。
刺し身の上にタンポポを乗せた方がマシだな
653デフォルトの名無しさん
垢版 |
2019/04/06(土) 05:27:02.18ID:IL3Q3Uy5
.netは昔VB.netしか書いたことないから詳しくないけど
C#でゲームサーバ書いてk8sに乗っけた話を昨日見たよ
k8sは便利だね GKEだと特に
■ このスレッドは過去ログ倉庫に格納されています