Go language part 5

■ このスレッドは過去ログ倉庫に格納されています
2022/02/27(日) 07:43:20.04ID:uWHjNeVw
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式
https://golang.org

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

公式外パッケージドキュメント
https://godoc.org

ブラウザ上で試し書き
https://play.golang.org


※前スレ
Go language part 4
https://mevius.5ch.net/test/read.cgi/tech/1605467680/
2022/09/09(金) 08:28:18.12ID:5SEsta+Y
意味わかんね

>>566 では promise の利点をこう書いてた

> 1と2についてはpromiseで全て安全に楽に実装できる
> ゴルーチンとchannelを使った実装なんか考えたくもない
> 100%デッドロックが起きる

それに対して >>593>>598 が goroutine とチャネルで簡単に実装できるって言ったら >>605

> わざわざゴルーチンだのchannelだのselectだのを書かなきゃいけないことがだるいと言う話だよ?

「だるい」なんて話、一切してなかっただろ。
2022/09/09(金) 11:21:59.96ID:8m5pePL+
>>607
マジでアスペか?
promiseの方が明らかに楽でバグが生まれない
これはこれまでの議論の流れで一貫してる主張

なんでリクエストのデータ受け取るのにgoルーチンだのchannelだのselectだの書かなきゃならんのだよ

そしてpromiseを実装するのは我々ではなくGoコンパイラの開発者たちだよ
2022/09/09(金) 12:35:07.97ID:OI70qo+4
promiseって普通awaitするのが普通だよね?
goもチャネルも使わない状態でhttp.Get呼ぶのと全く同じだよ

goroutineの中で実行すれば勝手に非同期になるしfork joinしたいならチャネルがwaitgroup使うだけの簡単なお仕事
2022/09/09(金) 12:39:54.70ID:ppztOn1H
>>608 >>607
まずは「goroutine&channelだと100%デッドロックが発生してpromiseだと発生しない状況」について戦えよ。

だるいとかより興味あるわ。
2022/09/09(金) 13:19:10.61ID:WCKL/dzA
>>608
「promiseの方が明らかに楽でバグが生まれない」
そんな統計は1つもないければ、あなたの貧相な頭の中だけですよね?それを証明しなさいと暗黙的に問われているのがわかりませんか?

「なんでリクエストのデータ受け取るのにgoルーチンだのchannelだのselectだの書かなきゃならんのだよ」
じゃあなんで、promiseなんていう出来の悪い非同期処理のために作り出された愚物を、真にマルチプロセスに対応するgoで
エミュレーションしなきゃならないんですか?あなたのためだけですよね、ほとんど誰も欲しがっていませんけど?
このような需要がない機能を、標準ライブラリに求めるものではありませんし、あなたの隠れた真の心は
「学ぶことをしたくない」だけでしょう、ご自分でも気づいてないと思いますが
C#やScalaあるいはJSしか出来ないなら素直にチームに報告しましょう、あなたのやる気を引き出すためだけに我儘を際限なく
広げても誰も理解してくれませんし、当然、味方にもなってくれないでしょう。だってやる気が無いんですから。
言語の基本的な考えが違うのに、他の言語に似たような雰囲気を求めるのは間違っていますし、なおかつ結局同じコードを
書いてしまうなら乗り換えるような利点をすべて消し去るでしょう

「そしてpromiseを実装するのは我々ではなくGoコンパイラの開発者たちだよ 」
実装しないと思いますね、あなたのゆがんだ考えでは超保守的なgoチームを説得するのは無理でしょう。1つも有益な
調査結果なり、推測なりが述べられていません。あなたが「ルーチンだのchannelだのselectだの書かなくちゃならない」と
我儘を言ってるようにしか見えません。仮に万が一億が一、必要だとしてもGithubに個人実装のライブラリとしてあるでしょう
2022/09/09(金) 13:32:44.23ID:eDV4BhqD
まあasync/awaitのほうが初心者に対するハードルは低そうな気はする
初心者が雑にchannel使ってるとたいていバグってるわ
2022/09/09(金) 13:34:32.33ID:KNCe5V0g
async/await手軽で簡単だけど複雑なことやろうとすると難しい
Goroutineとchannelはasync/awaitと比べると確かにとっつきにくいが複雑のことも組み合わせで上手く実現できる応用力がある
2022/09/09(金) 14:08:59.93ID:+r9uXbjm
>>611
そういうストローマン論法は俺には通用しないって
2022/09/09(金) 14:53:32.39ID:5SEsta+Y
promise の利点まとめ

- goroutineとchannelを使うと100%デッドロックが起きるが promise だと安全に実装できるものがあるらしい。具体例は不明。
- >>605 にとってだるくない。
2022/09/09(金) 15:05:25.55ID:+6O98yvA
非同期で順列な処理やる場合はasyncのがわかりやすい
並列にタスクいっぱい撒いてなんかやるみたいなのはchannelって印象
2022/09/09(金) 15:59:29.38ID:WCKL/dzA
promiseに似てるけど、全く違うものはerrgroup.Groupと呼ばれます。これもpromiseなんぞと比べれば
コンテキストなどと組み合わせキャンセルやタイムアウト処理が容易にできますし、実行順の制御や包括した
エラー処理以外にパイプラインまで簡単に拡張できます。

例1:ページをフェッチして全ての処理が終わるまで待つグループ制御(1つでもエラーならエラー処理)
https://pkg.go.dev/golang.org/x/sync/errgroup#example-Group-JustErrors

例2:単純な並列タスクを同期するためのグループ制御
https://pkg.go.dev/golang.org/x/sync/errgroup#example-Group-Parallel

例3:多段ステージを設けたパイプライン処理をグループ制御
https://pkg.go.dev/golang.org/x/sync/errgroup#example-Group-Pipeline

例1、例2はJSでいうPromise.all() のような動きをしますがpromiseなんていう融通の利かない非同期のため
だけの劣った機能より格段にシンプルな仕組みです。
上の例でいえば、並列タスクなどではchannelを使用せず、複数起動された軽量ルーチェンから元ルーチェンへ
results配列の結果を戻していますが、これは並列タスクが一段で終わるからです。
次の(例3の)pipeline処理にあるように、並列と並列が連鎖する多段処理においてはchannelのような
仕組みを使うのがとても合理的です。もちろん、処理の終わりの同期のために、selectによる結果受信待ちは
入りますがこれはデットロックではありません

もともとJSのPromiseがなぜあるかといえば、同じプロセス空間で疑似的な非同期処理による実行制御を行うため
だけの仕組みです。このため、特定の変数(結果を格納する配列や変数)に同時にアクセスされるという考えは
ありませんし、そのような(ロックや待ち)制御は必要ありません。現実に同時に動いていないのですから

隣国のアジア人コミュニティに「ストローマン論法」という言葉を連呼するキチガイ集団がいましたが、本当のバカだった
2022/09/09(金) 18:31:46.48ID:RxEWaepL
結局何がChannelに無くて、何がPromiseでしか解決できない問題なの?
Promiseを解決せずに持ち回ること?
2022/09/09(金) 23:05:27.12ID:zn1Qb1Bt
>>617
例1がすでに全然シンプルじゃないw
しかもレスポンスを返さない例で意味ないww
それ以外にも落とし穴満載

現実にこんなコード書いてるやつばっかりならバグりまくってヤバそう
620デフォルトの名無しさん
垢版 |
2022/09/10(土) 05:44:14.74ID:z/endEmr
やはり頭がバカ以前のGより脳が小さい、上の人はサンプルをシンプルだとは上でも言ってないが
errgroup.Groupがシンプルだと言っているのに、頭ヤバそう
まあサンプルは十分シンプルだが、レスポンスが要らない事など世の中にいっぱいある

現実にこんな奴がいることは、goより複雑な言語特性や膨大な標準ライブラリを持つ言語を
チーム開発で使えるか、大変考慮すべきことだろうな
2022/09/10(土) 06:14:16.74ID:JxBHu2/s
#Gopherくんの国葬に賛成します
2022/09/10(土) 06:49:15.74ID:0VnbKdes
ストローマン
2022/09/10(土) 09:36:19.36ID:hVWagXFo
まずは基本的に、シングルスレッドの場合とマルチスレッドだが共有データを使用しない場合は原理的に
データ競合や排他制御のバグは発生しない。
>>611が「promiseの方が明らかに楽でバグが生まれない」と言っているのはそのどちらかに帰着するケース。
マルチスレッドでかつ共有データを扱うケースではpromiseを使おうが競合バグは発生し得る。
2022/09/10(土) 10:19:58.24ID:wD6Hc2YL
シンプルシンプルw
2022/09/10(土) 10:24:38.51ID:LoWL2Dfj
壺買えばシンプルに見えるよ
2022/09/10(土) 10:34:19.91ID:JxBHu2/s
ストローマン連呼する人が最近5chで増えたと思ったけどこの動画が原因なのねん
youtu.be/mK3Tnxh4Kho
2022/09/10(土) 14:08:04.25ID:t/MG+nKm
そもそもGoは何もしなくてもマルチスレッドなんよ。
IO待ちとかしたら勝手に他の事しよるよ。awaitなんかしなくても。
だからFutureやPromiseで結果が来る事を持って回るんじゃなくて、
そもそも処理するロジック自体を複数起こしちゃうんだよ。。

これだけの事をいつまで言ってんのよ。。
>>617
の例1がどうして一気に複数リクエストを送りたいかと言うと、その三つを同じ一つの処理で使いたいからであって、
三つの同じ処理を起こすんであればWaitする必要も無いのでは?
それこそchanで受け取れば良いんだし。。
2022/09/10(土) 17:44:57.86ID:xFpfY3aA
JSのPromiseしか知らないんだな
そりゃ話が噛み合うわけがない
2022/09/10(土) 20:27:53.18ID:hVWagXFo
JS以外のpromiseだとどう違うって?
630デフォルトの名無しさん
垢版 |
2022/09/10(土) 21:23:42.19ID:iWyUjfem
内容ゼロのワイ賢者や煽りに煽りで返すスタイルwww
2022/09/11(日) 01:29:37.61ID:VONtFQ6w
藁人形♫
2022/09/13(火) 07:00:51.39ID:Rg9hdag/
韓国人の口癖、ストローマン論法という逃亡手段
2022/09/13(火) 18:17:36.41ID:Ma8GSz9P
ストローマンって本題から離れた部分を、わざと誤解して上げつらう詭弁の手法だから、自己紹介してるんだよ
2022/09/14(水) 11:14:58.88ID:xpCSG28g
うぬぬぬぬ、issueに送るべきだろうか?

1、「ポインタの」レシーバーでストリンガーを記述すると、fmt.Println()とかに渡してもString()メソッドは呼んでくれない…

2、そして(str{v: 1}).String()とか記述するとコンパイルエラーになる…

変数に一旦格納してからのs.String()は、仕様から(&s).String()と解釈してくれて通る
2022/09/14(水) 11:17:52.77ID:xpCSG28g
>>634
あ、1は実体を渡すと
2022/09/14(水) 11:22:55.99ID:xpCSG28g
>>634
コードサンプル

https://go.dev/play/p/cnLcXtFFQ4j
2022/09/14(水) 11:33:39.56ID:xpCSG28g
>>634
この辺(レシーバー)の仕様って、訳してみると何かガバッてるように思えてならないんだよなぁ
2022/09/14(水) 11:40:44.99ID:xpCSG28g
>>634
実体のレシーバーはレシーバー内のフィールドを更新しても反映されないから、レシーバーはポインターとして書くのが定石だけど
ストリンガーだけ実体のレシーバーとして書けば回避できる
回避できるなら放置でもいーじゃん?とか言われると反論しづらい
2022/09/14(水) 15:53:22.22ID:xpCSG28g
>>638
ポインタのレシーバーを記述していると、インタフェース型変数には実体は代入できずポインタでなければならない
という制限もイミフ
代入可能性の仕様は単に、xがインタフェースTを実装していること
実体でもメソッドセットx.String()とx.Str()は呼び出せるのだから実装されている、とは「ならない」事から上記の制限がイミフと言ってる

本当に仕様が厳密じゃなくてガバガバ
大真面目に仕様書を読み込んでる俺の純情を返せ
2022/09/14(水) 16:03:17.92ID:xpCSG28g
>>639
セレクタ式で実体からポインタレシーバーを呼び出すと&xと解釈されるという仕様が、インタフェースの代入可能性には波及していない、という点でコンパイラのバグと難癖つけられるんじゃないか?
とissueに書いてもいいんじゃないか?という多分にメンドクサイ系おじさんの怒り

仕様書にどう書かれていようが、インタフェースに実体を入れようとするな!で済む話ではあるかも

最終的には「仕様書は信用するな」に帰着
2022/09/14(水) 17:25:20.47ID:e1B1zDJm
インターフェース型変数という訳のわからないものを導入したのがそもそもの間違いなんだよな
2022/09/14(水) 20:14:22.35ID:KrdCg/Z1
で、なんでそんなもんを導入したかというとそもそもジェネリックスがなかったから
「ジェネリクスがなくてもプログラムは書ける(キリッ」みたいなイキりにこだわって結局かえって醜いことになるっていうまるでド素人みたいな失敗
2022/09/14(水) 20:52:01.05ID:OtPAbKwR
一人で喋ってる怖い
2022/09/15(木) 09:41:05.37ID:zCeWb7Zl
理解できないから人格攻撃に出るあたり、お里(国)が知れるというもの
2022/09/15(木) 10:04:39.44ID:I85rKOcV
いきなり国がどうとか言い出す人って日常会話出来るのか気になる
2022/09/15(木) 22:29:29.36ID:zCeWb7Zl
インタフェース変数は普通に色々な言語にあるだろ?
そこにケチをつけるのは筋が悪すぎるのではないか?
2022/09/16(金) 15:06:43.28ID:rsr6X2sj
ないわw
空インターフェースとか訳がわからんわ
2022/09/16(金) 16:29:46.84ID:AcRFw2zF
>>636
1. &elem2{}で渡してるのに、func (e elem2) String() stringなんて呼び出すわけないじゃん?どういう事?
2. func (s *str) String() string で普通は定義するので、同じように呼べないからコンパイルエラー
もっと言えば、s := str{}にしても (*str).String(&s)とコンパイル時に解釈されるだけで呼んでるのはポインタメソッド

下のインタフェース型変数云いいは、全く理解ができていないで我儘いってるだけで読んでる人に伝わってないし
マジ何が言いたいのかサッパリ...
goの仕様ほど厳格なものはないと思うけど(比べるのはC/C++や2015年代以前の言語ね、2016年以降の言語と
比べても、いまだに詳細なメモリレイアウトさえ公表できない某錆より厳格だ)本当に大真面目に読んでる?
golangを始める必要性に駆られて、こんな簡単な入門初めのプログラムでケチ付けたいだけじゃ?
issue書いても良いけど、保守的なgolangメンテナーに絶対相手にされないよ
2022/09/16(金) 16:48:33.54ID:2lkKV8fn
>>648
ちゃんとコードを読みなよ
elemはポインタレシーバーで実装、elem2は実体レシーバーで実装
そしてポインタレシーバーでストリンガーを書くと、fmtパッケージとかでは認識されないケースがあるってサンプルコードよこれ

つまりあなたの主張する func (e *elem)String() string という「普通の定義」では動かないケースを示している
実行してみ?俺も「普通の定義」だと思っていたからこそのレスなんだから
2022/09/16(金) 16:58:05.87ID:2lkKV8fn
func (e *elem) String() string
と書くとストリンガーとして認識してくれないと説明して
サンプルコードまで載せて確認を求めてるのに
実行すらしてもらえないとは
2022/09/16(金) 17:11:32.64ID:fXetx5ML
仕様書にポインタ変数.は勝手に*(ポインタ変数).

に変換されるとか書いてあるけどインターフェースでも行われるってのはどこに書いてあるの?
2022/09/17(土) 02:32:12.33ID:z62v58Fz
>>651
ない
むしろ、インタフェースを実装しているという定義が、全てのメソッドセットを満足している、という程度しか書かれていない

あれ?仕様書だと逆に値は (&x).xxxx に変換されるとしか書かれてなくなかったか?後で確認してみる
2022/09/17(土) 02:40:37.19ID:z62v58Fz
ポインタと値レシーバーは特に注意しなくても相互にセレクタとして呼べるんで気にしていなかったんだけど、ポインタでストリンガーを書いたらfmtパッケージの関数では認識してくれなかった
んで、これは不味いと総当たりで確認してみた

しかし、単に自分の勘違いかなと確認コードを公開してみて、レビューを求めている←イマココ
2022/09/17(土) 02:47:40.39ID:z62v58Fz
まだfmtパッケージの中は見ていないけど、ポインタレシーバーで書くと型スイッチかリフレクションではインタフェースを満たしていないと見なされたりするんじゃないか?とか不安になってきた

上でも書いたけどfunc (e *elem)String()は自分も「普通の」書き方だと思ってたんで
2022/09/18(日) 09:35:57.42ID:Ymh3f8Pk
な、仕様なんてこいつ読んでないだろ?5chぐらいでしか自分の連投でしか意見言えない
issueとかこいつは言ってみただけでそれすら出来ない
2022/09/18(日) 09:58:37.38ID:pgs2ObNe
>>655
そいつ次世代言語スレで機能精神崩壊してたんだぜ

自分のRustの実力(知ったか)で仕事にありつくのが難しいと観念して これからはGoに粘着するよ

ここが新しい 隔離スレ よろしく頼む
2022/09/18(日) 10:43:21.71ID:d4i41YBr
理解できない

・ポインタでストリンガーを書いてしまうと動かないケースがある
・実例をプレイグラウンドで上げたから間違っていたなら指摘してくれ

に対しての回答になってない
これこそ関係のない些事を上げ連ねて議論を避けるストローマン話法の典型じゃね?
2022/09/18(日) 11:17:33.27ID:6lT6OUda
Promise最強ストローマンおじさんw
仕様書なんて読んでないんだろ?そもそも英語読めないから読んでないどころか読めないんでしょ?w
2022/09/18(日) 22:39:49.75ID:ds+slurx
なんか勘違いしてるけど相互運用ではないよ

レシーバが値のメソッドはポインタと値に対して呼び出すことができるが
ポインタのメソッドはポインタに対してのみ呼び出すことができる

これは仕様書に書いてある
2022/09/18(日) 22:48:21.16ID:YN5s6Pjv
>>659
これで全部解決しててワロタ
二度と喚き散らすなよ
2022/09/19(月) 08:13:25.10ID:uG07qrUI
>>659
んにゃ
「メソッド呼び出しと同様に、アドレス指定可能な値を用いたポインタレシーバーによる非インタフェースメソッドへの参照は、自動的にその値のアドレスを取りますのでt.Mpは(&t).Mpと等価になります」Method values より
とあるよ
2022/09/19(月) 08:20:33.46ID:uG07qrUI
>>659
As with method calls, a reference to a non-interface method with a pointer receiver using an addressable value will automatically take the address of the value; t.Mp is equivalent to (&t).Mp.
のトコね
誤訳してるなら指摘してくれな
2022/09/19(月) 08:24:13.55ID:uG07qrUI
まあ、こんな感じにぜーんぶ読み通さないと系統だった仕様の把握ができそうにない、という点で、かなり品質は良くないんよ
これ、どっちが優先されるの???という話が多すぎて、実際に試行するとアレ?となる
2022/09/19(月) 08:35:15.69ID:uG07qrUI
仕様書の全訳に挑んでオカシイとサンプルコード書いて確認してみてレスしてるのに
仕様書を読んでない奴がそのサンプルコードをRunすらせずに、お前が勘違いしている、とか
へそで茶わかしていいでしょうか?
2022/09/19(月) 08:42:10.25ID:Uuvgp4zf
>>662
いや、それ暗黙的にポインタに変換してるからポインタに対して呼び出してるよね?
理解できてる?
2022/09/19(月) 08:45:47.87ID:wNLDibxP
>>664
なんだ英語読むのに苦労してる人か

そういう人が日本語訳に取り組むと迷惑

オカシイところがあると言うなら原文の方にPR出せ
2022/09/19(月) 08:51:12.18ID:Uuvgp4zf
はいサンプルね
interfaceはポインタレシーバーだとポインタ変数しか代入できないのに対して
メソッド呼び出しは全部成功しているよね?

https://go.dev/play/p/X71811pJ1sQ

メソッド呼び出しとインタフェースの仕様を混同しているから話にならない
英語読めない文盲ってことが証明されたな
2022/09/19(月) 13:12:10.62ID:TLnbUxjm
>>667
わかってないふりしてるけどもう理解できたんだろ?
インターフェースのマッチ時のメソッド呼び出しについては>>659
明示的に呼び出す場合は>>662で変換される
(自分で呼び出すのだから当然インターフェース云々とは無関係)
2022/09/19(月) 14:35:47.93ID:DYtWz9pX
言語的にケチ付けたいだけでしょ?
http://hissi.org/read.php/tech/20220914/eHBDU0cyOGc.html
http://hissi.org/read.php/tech/20220917/ejYydjU4Rno.html

こんなに一生懸命書く奴がほかに書き込んでない訳ないわ、またいつものRustかC#かアホみたいな他を攻撃する信者のオッサン
2022/09/19(月) 14:40:24.76ID:TLnbUxjm
でもGoの知識増えたしいいんじゃない?
育成は成功だ
2022/10/14(金) 13:17:00.05ID:5TqK6JoH
https://twitter.com/anicolaspp/status/1579960864639455232

Googleにやる気がなさすぎる
https://twitter.com/5chan_nel (5ch newer account)
2022/10/14(金) 13:31:24.87ID:ei3T0+vp
Rustでもないのか
2022/10/14(金) 19:27:35.90ID:BY1P2csp
Googleのたかが1プロジェクトが C++で始まるからと言ってGoの終わりを感じ始めるなんてどういう審美眼で生きてんだよ。
2022/10/14(金) 19:30:06.02ID:5TqK6JoH
>>673
そうなんだろうけど、言いっぷりがなんかちょっと引っかからんか
お前やる気ないんか?ってメンションしたいくらいだわしないけど(´・ω・`)
2022/10/14(金) 20:40:12.25ID:B3yPY6eO
審美眼w
2022/10/14(金) 21:08:37.72ID:lXZRrdjw
>>674
普通にリプで使われまくってるって言ってるが
2022/10/15(土) 20:39:15.62ID:oepRuRjK
Googleってコーディングに関しては無茶苦茶保守的というか統制的だからな
開発者の好みより合理的判断を優先した結果だろう
そういう文化だからこそGoみたいな極右言語が生まれたとも言えるのだが
678デフォルトの名無しさん
垢版 |
2022/10/15(土) 21:16:18.42ID:i2DHISwU
数多の捨てられたプロジェクトに比べればGo言語は成功した部類だろうよ。
2022/10/16(日) 20:12:43.19ID:rzkq3MMZ
オッス!オラGo!
2022/10/16(日) 23:36:46.06ID:sPVu6wa4
オラGolang
いっちょやってみっか
2022/10/19(水) 22:35:19.30ID:wI0tEVCM
なんでC++なんて使ってるんだよ
新プロジェクトで使う言語じゃねーだろ
2022/10/20(木) 01:44:44.00ID:5E4liKFh
Googleは独自のビルドシステムなど過剰に最適化された開発環境を持ってるから、簡単に言語変えられないんだよ
2022/10/20(木) 02:39:12.77ID:ce/AQgdF
いや、たんに仕事が雑なだけだとおもう
とりあえず新プロジェクトやるぞー!
で?言語は?
C++で。
あれ?ウチの会社なんか新しいのはGOでやるとかいってなかったけ?
そうだっけ?べつにいーじゃん、Goはマスコットきもいし、C++のほうが楽だから俺んとこはこれでヨロシク!
こんな感じだろう
2022/10/20(木) 04:11:13.86ID:XisYbstq
RustじゃなくてC++なのが逆張りっぽくてキモい
685デフォルトの名無しさん
垢版 |
2022/10/26(水) 14:45:01.27ID:bQQxHwPn
Goは低落傾向だよな
2022/10/27(木) 12:55:24.22ID:8IxaEUdi
Goの後は何がくるの?
2022/10/27(木) 13:56:20.40ID:dR6kLI3k
Rock(´・ω・`)
2022/10/27(木) 14:48:53.91ID:JD5Xibbr
Goの前はなんだったん?
689デフォルトの名無しさん
垢版 |
2022/10/27(木) 14:57:45.98ID:NvTdXXa8
PHPかRubyじゃね
2022/10/27(木) 15:21:32.99ID:dR6kLI3k
C(しー)だろ(´・ω・`)
2022/10/27(木) 15:51:18.10ID:JD5Xibbr
dR6kLI3k
超好き
2022/10/31(月) 23:02:39.22ID:sD6lQxmd
Dが2001年、F#が2005年、Goが2009年(年はwikipediaに書いてあった登場時期)
うまく並びそうだなと思たんだけどEがない

Goの次はHack(2014年)で間違いないよね。
2022/11/07(月) 21:16:50.51ID:CyGVtWq4
最小とか最大を求める関数は自分で作れって話なの?
あと、整数の絶対値とか
2022/11/07(月) 21:23:29.28ID:Jjz79PGF
>>693
https://aiprogrammer.hashlab.jp/

https://i.imgur.com/VZsGFBV.png
このサービスは適切にライブラリ使ってくれるはずだから、
多分無いんだろうな
2022/11/07(月) 21:46:44.70ID:FtLbuDZg
二分探索できたりする場合もあるからそういうライブラリはあえて作ってないんだと思われる
ライブラリ側で最適な実装で作れる場合はちゃんと用意されてることが多い
(http2とかDB周りとか)
696693
垢版 |
2022/11/09(水) 22:20:34.16ID:lnZKpzqz
お二人ともありがとうございます。
2022/12/08(木) 18:39:09.15ID:uxR4Nxrs
windows環境でGoをアップデートするにはどうしたらいいでしょうか?
新しいバーションで上書きインストールしちゃえばいいんでしょうか?
698デフォルトの名無しさん
垢版 |
2022/12/08(木) 18:52:51.60ID:CQKYsqd2
Chocolateyでやってるのを見てみると、上書きっぽいけど
2022/12/10(土) 13:20:48.86ID:tbDvYRlN
wingetUIであらゆるものを一括アップデート
2022/12/10(土) 17:41:52.62ID:pF+bGi+J
GoなんかどうせWinネイティブで使う意味ないんだから、WSLでHomebrewでも使って入れたらいいんじゃない
2022/12/10(土) 18:33:44.18ID:EIv2riio
暇だったから>>693を流行りのChatGPTに書いてもらった

https://i.imgur.com/ObP9Twg.png
702デフォルトの名無しさん
垢版 |
2022/12/10(土) 18:54:44.75ID:wODlVXAD
>>701
テストコードも書いてもらってみて
2022/12/10(土) 19:02:48.17ID:EIv2riio
>>702
https://i.imgur.com/z6DYfbM.png
https://i.imgur.com/xLZMGaq.png
https://i.imgur.com/aMF42Kk.png

おもろいから無料βの今遊んどくことをおすすめするぞ
アセンブラ(65816)も書いてくれた
2022/12/10(土) 19:27:57.88ID:EIv2riio
ちなみにChatGPTはセッション的に一連の会話を一時的に覚えててくれるらしいから、
二回目には同じ関数のコメントが省略されてる
関数の名前を明示すれば、「○○のテストコード書いて」でやってくれたかも
まあスレチだな
705デフォルトの名無しさん
垢版 |
2022/12/10(土) 22:11:37.20ID:44qA0nvq
>>703
テストケース考えるときの助けによさそうだな
たいしたもんだ
2022/12/11(日) 20:52:12.36ID:5Jzg/4z6
Go言語はこの先生きのこれるのか?聞いてみたら面白いかもな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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