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/
探検
Go language part 5
■ このスレッドは過去ログ倉庫に格納されています
2022/02/27(日) 07:43:20.04ID:uWHjNeVw
2022/03/03(木) 00:21:30.68ID:r4JzAqw4
やり方がわからんのだろ。
2022/03/03(木) 00:23:05.45ID:r4JzAqw4
チャンネルが同期なのはバッファが無いとき
お前は本当に人な話を聞かないし何も読まないな。
お前は本当に人な話を聞かないし何も読まないな。
2022/03/03(木) 00:56:08.72ID:hTxF5AaQ
>>71
> 妥当性がどうのこうのは「GoランタイムのG実装」であって、君のデータについてではない。
うん、それは分かってたんだけど、定量的なデータがないとその妥当性分からんでしょ
M:Nのgoroutineだからと言って調子に乗って1:1の10倍積むと、俺の環境だとrssは超えてしまうってことがデータから分かる
データは簡単に取れる状況だったから、取っただけ
> 妥当性がどうのこうのは「GoランタイムのG実装」であって、君のデータについてではない。
うん、それは分かってたんだけど、定量的なデータがないとその妥当性分からんでしょ
M:Nのgoroutineだからと言って調子に乗って1:1の10倍積むと、俺の環境だとrssは超えてしまうってことがデータから分かる
データは簡単に取れる状況だったから、取っただけ
2022/03/03(木) 11:28:44.36ID:6vq1sG3T
Windowsでアップデート後にVScodeでテストを走らせると1.14.13でコンパイルされてるためツールバージョン1.17.7とマッチしませんと言われる
setting.jsonでgo.gopathを環境変数のGOPATHに合わせてビルドしてもダメ
かといってアップデートされたディレクトリを指定してもダメ
環境変数のGOPATHのgo.exeがアップデートでは更新されていないためなのか
でもツール類はアップデートされてたりしてもう訳がわからない
どう処置したらいいの?
ちなみに、システム環境変数のPathには$GOPATH\binのパスが入れてある
setting.jsonでgo.gopathを環境変数のGOPATHに合わせてビルドしてもダメ
かといってアップデートされたディレクトリを指定してもダメ
環境変数のGOPATHのgo.exeがアップデートでは更新されていないためなのか
でもツール類はアップデートされてたりしてもう訳がわからない
どう処置したらいいの?
ちなみに、システム環境変数のPathには$GOPATH\binのパスが入れてある
2022/03/03(木) 11:44:33.79ID:6vq1sG3T
いや…落ち着いてエラーログを見たら、例えばruntime/internal/sysが、とか言ってる
参照モジュール?
で、go.sum を消して再ビルドしたけど同じ結果
参照モジュール?
で、go.sum を消して再ビルドしたけど同じ結果
2022/03/03(木) 13:27:09.03ID:6vq1sG3T
とりあえず全部をアップデート先に統合する方向で納めた
バージョン混在状態だとどうしたらベストなのだろう?
環境的には最新に統合してgo.modでのバージョン記述に頼ればいい?
バージョン混在状態だとどうしたらベストなのだろう?
環境的には最新に統合してgo.modでのバージョン記述に頼ればいい?
2022/03/03(木) 18:20:17.50ID:qZcuxxc0
>>74
つまりリソース的にGoroutineはOSのスレッドの数倍しか立ち上げられないということ?
つまりリソース的にGoroutineはOSのスレッドの数倍しか立ち上げられないということ?
2022/03/03(木) 18:47:19.32ID:3iRkjbfP
2022/03/03(木) 20:31:53.54ID:DvSNmo59
>>74
それはご丁寧にどうも。ついでなら、
> C++は20を使えば標準機能だけで実装できるはず (>>58)
これについてもキーワードかURLだけでも教えてくれれば助かる。見に行く。
greenthreadが採用されたって事か?
(C++の場合は『全部入り』を目指してるからいつかは入るとは思うが)
>>73
あの文法は同期が主目的で非同期も問題なく書けるだけ。
OSのスレッド間通信は非同期しかなく、
同期したければ自前でループかサスペンド/ウェイクアップするしかない。
だからそんなに同期を取る事はなく、仕方なくやる程度。
そしてそれで何とかなってる=従来分野は非同期で問題なく書けてる。
同期の場合、シェークハンド等の単純な方法なら同期プリミティブ無しで書ける。
多分もっと複雑な事も出来るのだろう。だけど俺にはそれに適した分野が分からない。
(従来分野は問題ないので、従来既に困ってたか新分野かだが、思いつかない)
ランタイムの仕様が無駄に大きいと、実行速度がそのまま低下する。
JSが無駄に速いのは、仕様が小さい(最小限に絞ってる)のもある。
チャネルの実装は以下(前スレ805内リンク8章)にあるが、
https://zenn.dev/hsaki/books/golang-concurrency/viewer/chaninternal
こんなまどろっこしい実装になってる理由は、同期(も出来る構造)だからだ。
非同期専用ならもっと単純な実装で済むし、速い。
だから優位性を発揮するためには、「同期チャネル」がないと辛いアプリがあれば分かりやすいが、
俺には今のところ思いつかないって話。
(非同期チャネルだと「空になったら止まる」という間抜けな同期しか出来ないが、実際それで十分という話)
それはご丁寧にどうも。ついでなら、
> C++は20を使えば標準機能だけで実装できるはず (>>58)
これについてもキーワードかURLだけでも教えてくれれば助かる。見に行く。
greenthreadが採用されたって事か?
(C++の場合は『全部入り』を目指してるからいつかは入るとは思うが)
>>73
あの文法は同期が主目的で非同期も問題なく書けるだけ。
OSのスレッド間通信は非同期しかなく、
同期したければ自前でループかサスペンド/ウェイクアップするしかない。
だからそんなに同期を取る事はなく、仕方なくやる程度。
そしてそれで何とかなってる=従来分野は非同期で問題なく書けてる。
同期の場合、シェークハンド等の単純な方法なら同期プリミティブ無しで書ける。
多分もっと複雑な事も出来るのだろう。だけど俺にはそれに適した分野が分からない。
(従来分野は問題ないので、従来既に困ってたか新分野かだが、思いつかない)
ランタイムの仕様が無駄に大きいと、実行速度がそのまま低下する。
JSが無駄に速いのは、仕様が小さい(最小限に絞ってる)のもある。
チャネルの実装は以下(前スレ805内リンク8章)にあるが、
https://zenn.dev/hsaki/books/golang-concurrency/viewer/chaninternal
こんなまどろっこしい実装になってる理由は、同期(も出来る構造)だからだ。
非同期専用ならもっと単純な実装で済むし、速い。
だから優位性を発揮するためには、「同期チャネル」がないと辛いアプリがあれば分かりやすいが、
俺には今のところ思いつかないって話。
(非同期チャネルだと「空になったら止まる」という間抜けな同期しか出来ないが、実際それで十分という話)
2022/03/03(木) 20:56:08.85ID:hTxF5AaQ
>>80
coroutine
coroutine
2022/03/03(木) 21:23:47.28ID:DvSNmo59
>>81
あ、そういう事ですか、なるほど。
まあ見てみましたが、相変わらずというか、何というか。
https://cpprefjp.github.io/lang/cpp20/coroutines.html
あ、そういう事ですか、なるほど。
まあ見てみましたが、相変わらずというか、何というか。
https://cpprefjp.github.io/lang/cpp20/coroutines.html
2022/03/03(木) 21:54:21.27ID:oaR2p1R0
Docker CLIのダウンロードみたいな
複数のプログレスバーを出せるライブラリほしい
何がおすすめ?
複数のプログレスバーを出せるライブラリほしい
何がおすすめ?
2022/03/03(木) 22:06:45.01ID:6vq1sG3T
GUIなぞ基本的には管轄外です
お引き取りを
お引き取りを
2022/03/03(木) 22:22:12.59ID:y+UC/h2K
CLIでのプログレスバーの話だろ?
2022/03/03(木) 22:27:14.50ID:6vq1sG3T
あーすまん
2022/03/03(木) 23:09:26.23ID:1IkAc1iQ
いいってことよ
2022/03/03(木) 23:29:47.34ID:Rf6M0oqn
>>64
そこは標準機能だけ対象といってもその定義が難しい
そのRustは標準(std)ライブラリーは最小限のものしかなくて
例えば乱数も暗号関係(TLS含む)も正規表現もJSONもHTTPも非同期ランタイムも何もかもstdに含まれていない
全てデファクトスタンダードで賄う方針だからそれらを標準機能として採用して比較してよい?
そこは標準機能だけ対象といってもその定義が難しい
そのRustは標準(std)ライブラリーは最小限のものしかなくて
例えば乱数も暗号関係(TLS含む)も正規表現もJSONもHTTPも非同期ランタイムも何もかもstdに含まれていない
全てデファクトスタンダードで賄う方針だからそれらを標準機能として採用して比較してよい?
89デフォルトの名無しさん
2022/03/03(木) 23:35:59.34ID:vRr517/c rustはもう少し標準ライブラリにも機能増やして欲しい。
2022/03/04(金) 00:05:33.31ID:4zB49VIz
>>88
俺が依頼してる話でもないから俺に聞かれても・・・ではある。そもそもここgoスレだし何のためにそれをしたいのかすら分からない。
単純に話を聞く限り
・goは言語機能で賄っているのに標準ライブラリ以外を使うとか流石に比較にならないと思う
・C++の標準ライブラリにもjsonやhttpや暗号はない
・同じロジックにこだわらず、追加のロジックで不足機能を補うなら、可搬性(プラットフォームごとに実行コードが変わらない)が必要
のではないかと思う
俺が依頼してる話でもないから俺に聞かれても・・・ではある。そもそもここgoスレだし何のためにそれをしたいのかすら分からない。
単純に話を聞く限り
・goは言語機能で賄っているのに標準ライブラリ以外を使うとか流石に比較にならないと思う
・C++の標準ライブラリにもjsonやhttpや暗号はない
・同じロジックにこだわらず、追加のロジックで不足機能を補うなら、可搬性(プラットフォームごとに実行コードが変わらない)が必要
のではないかと思う
2022/03/04(金) 07:00:31.23ID:Ah997PWW
非同期処理ですら紛糾して仕上がったのが2019/11な赤ん坊に無茶言うなって
Rustのコンセプトは分かるけど、学習難易度とライブラリの貧困さを何とかしないと浮かばれずにいつの間にか沈むぞ
Rustのコンセプトは分かるけど、学習難易度とライブラリの貧困さを何とかしないと浮かばれずにいつの間にか沈むぞ
2022/03/04(金) 11:17:26.10ID:2Vo/u60a
そんなにライブラリ貧困なの?
おれもまだ勉強中なんだけど何のライブラリで困るのか具体的に教えてくれ
勉強がてら試しに作ってみるかも
おれもまだ勉強中なんだけど何のライブラリで困るのか具体的に教えてくれ
勉強がてら試しに作ってみるかも
2022/03/04(金) 13:21:46.53ID:JMvj/uct
>>91
学習難易度はキノコードが動画作れば解決w
学習難易度はキノコードが動画作れば解決w
2022/03/04(金) 15:27:21.82ID:e8gLPWot
>>91
Rustも難易度は高くなくて広く色んなプログラミング言語をやってきた者には容易
例えばC言語などのenumを関数型言語の代数的データ型で拡張したのがRustのenum
そういうのを理解しているとメソッドによる代数的演算やパターンマッチングなどRustの基本機能も習得がすぐ
あるいは例えばGoでも構造体ベースのイテレータパターンを書いたことあればRustのイテレータも楽勝といった具合
GoやCのfor ; ; 文はRustには存在せずイテレータに集約されており更にメソッド連鎖させて操作の分離と抽象化でわかりやすく書くことが多い
Rustも難易度は高くなくて広く色んなプログラミング言語をやってきた者には容易
例えばC言語などのenumを関数型言語の代数的データ型で拡張したのがRustのenum
そういうのを理解しているとメソッドによる代数的演算やパターンマッチングなどRustの基本機能も習得がすぐ
あるいは例えばGoでも構造体ベースのイテレータパターンを書いたことあればRustのイテレータも楽勝といった具合
GoやCのfor ; ; 文はRustには存在せずイテレータに集約されており更にメソッド連鎖させて操作の分離と抽象化でわかりやすく書くことが多い
2022/03/04(金) 15:37:03.27ID:e8gLPWot
>>92
むしろRustは民主主義方式なのでライブラリは多種多様に豊富
異なる考え方で作られたものが両立している分野もあるし後から優れたものが出てきてシェア拡大も起きたりしている
代わりに標準ライブラリ(std)は必要最小限のものしかなく
その一部であるコア標準ライブラリ(core)はヒープがなくても動作する更なる最小セットを提供
むしろRustは民主主義方式なのでライブラリは多種多様に豊富
異なる考え方で作られたものが両立している分野もあるし後から優れたものが出てきてシェア拡大も起きたりしている
代わりに標準ライブラリ(std)は必要最小限のものしかなく
その一部であるコア標準ライブラリ(core)はヒープがなくても動作する更なる最小セットを提供
2022/03/04(金) 15:39:19.04ID:4zB49VIz
間違ってる上にスレ違いすぎるな
言語比較がしたいなら↓へ
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1638086359/
言語比較がしたいなら↓へ
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1638086359/
2022/03/04(金) 15:48:00.84ID:e8gLPWot
2022/03/04(金) 15:52:46.98ID:4zB49VIz
99デフォルトの名無しさん
2022/03/04(金) 16:07:29.53ID:wUg1CCTJ100デフォルトの名無しさん
2022/03/04(金) 16:41:14.71ID:2tyOtSaX101デフォルトの名無しさん
2022/03/04(金) 17:03:59.90ID:k6Ka/u1X102デフォルトの名無しさん
2022/03/04(金) 17:23:53.33ID:wUg1CCTJ 確かに、いい加減Goの話に戻そう。
103デフォルトの名無しさん
2022/03/04(金) 18:00:31.30ID:JMvj/uct104デフォルトの名無しさん
2022/03/04(金) 18:09:02.15ID:4zB49VIz105デフォルトの名無しさん
2022/03/04(金) 18:20:16.68ID:rY1xxy8+ そうだね
じゃあ 1.18 の話でもしよう
せっかく Generics が入るみたいのに、slice での Map、Reduce、Filter みたいなユーティリティが提供されないっぽいよね?
今はとりあえず準標準といえるものがこれ https://pkg.go.dev/golang.org/x/exp/slices
だと思うんだけど、そのうち増えるのかな?
例えばこんな感じの実装↓でいいと思うんだけど、本家でなんか議論されてるん? Go追いかけてるひとおせーて!
https://gotipplay.golang.org/p/Y2cpCCPjKqr
じゃあ 1.18 の話でもしよう
せっかく Generics が入るみたいのに、slice での Map、Reduce、Filter みたいなユーティリティが提供されないっぽいよね?
今はとりあえず準標準といえるものがこれ https://pkg.go.dev/golang.org/x/exp/slices
だと思うんだけど、そのうち増えるのかな?
例えばこんな感じの実装↓でいいと思うんだけど、本家でなんか議論されてるん? Go追いかけてるひとおせーて!
https://gotipplay.golang.org/p/Y2cpCCPjKqr
106デフォルトの名無しさん
2022/03/04(金) 18:21:39.81ID:rY1xxy8+ 他のインタフェースが検討されてるとしたら、メソッドチェーンできるようにしたい、とかかな?
107デフォルトの名無しさん
2022/03/04(金) 19:18:02.80ID:rpzx0HJl Rustに移行すべきでは?
108デフォルトの名無しさん
2022/03/04(金) 19:23:47.26ID:L8b5lnOt109デフォルトの名無しさん
2022/03/04(金) 19:26:20.71ID:gF7ObJcT GoスレでRustRust言う奴から得るもんは何もない
失せろ
失せろ
110デフォルトの名無しさん
2022/03/04(金) 19:27:58.27ID:2tyOtSaX111デフォルトの名無しさん
2022/03/04(金) 19:30:36.16ID:tHN8vl7V たしかに効率的にするならイテレータにしないとね
それで簡単に仕様が決まらんのかな
それで簡単に仕様が決まらんのかな
112デフォルトの名無しさん
2022/03/04(金) 19:41:10.06ID:aLx0Ek8o 今一番rustの話で盛り上がるのがこのスレだからな
113デフォルトの名無しさん
2022/03/04(金) 20:33:03.39ID:3r4UVkMf Rust スレはどうなっているんだw
114デフォルトの名無しさん
2022/03/04(金) 20:34:31.83ID:JMvj/uct NGword: Rust
なんでこれしないのか?
なんでこれしないのか?
115デフォルトの名無しさん
2022/03/04(金) 20:36:30.45ID:JMvj/uct116デフォルトの名無しさん
2022/03/04(金) 20:41:31.76ID:e8gLPWot >>110
それ7年前のRust 1.0公開時からサポートしてる機能だが
Rustはプル型にすることで無駄な動きをゼロにしつつメソッドチェーンの形になってもヒープを使わずスタック上のみで動く特徴がある
しかしGoでは受け入れられる方針なのだろうか?
一方でプッシュ型であるチャネルを使った実装だとプッシュ型にすることでのムダよりもgoroutineを使うオーバーヘッドが大きい
それ7年前のRust 1.0公開時からサポートしてる機能だが
Rustはプル型にすることで無駄な動きをゼロにしつつメソッドチェーンの形になってもヒープを使わずスタック上のみで動く特徴がある
しかしGoでは受け入れられる方針なのだろうか?
一方でプッシュ型であるチャネルを使った実装だとプッシュ型にすることでのムダよりもgoroutineを使うオーバーヘッドが大きい
117デフォルトの名無しさん
2022/03/06(日) 19:22:52.31ID:oq6skpEb >>40
そのとおり。
決定的なのは、goをRustで実装してしまえばいいw
それがすべてだろw逆にRustをgoで実装することは何万年立っても不可能なんだからw
なぜならgcのある言語でgcのない言語を実装できないから
そのとおり。
決定的なのは、goをRustで実装してしまえばいいw
それがすべてだろw逆にRustをgoで実装することは何万年立っても不可能なんだからw
なぜならgcのある言語でgcのない言語を実装できないから
118デフォルトの名無しさん
2022/03/06(日) 19:40:37.34ID:UDoFVzdd Istioがまさにそうだよ
> RustをGoで実装
> RustをGoで実装
119デフォルトの名無しさん
2022/03/06(日) 21:05:29.02ID:Rcp3w968 フリーランスだけど未経験OKのところに応募してみた。
採用されたらよろしくな。
採用されたらよろしくな。
120デフォルトの名無しさん
2022/03/06(日) 21:06:19.97ID:D8Ku8/qP121デフォルトの名無しさん
2022/03/06(日) 23:38:19.72ID:0i0EE3CI >>117
コンパイラの処理って何か知ってる?
コンパイラの処理って何か知ってる?
122デフォルトの名無しさん
2022/03/07(月) 00:39:41.57ID:kssBp/wX123デフォルトの名無しさん
2022/03/07(月) 00:44:33.34ID:otYxLRpr >>122
goでメモリ管理まで書くの?そしたら所有権とかの概念があるRustに軍配があがるだろ
goでメモリ管理まで書くの?そしたら所有権とかの概念があるRustに軍配があがるだろ
124デフォルトの名無しさん
2022/03/07(月) 08:43:53.50ID:s5yg+NZx125デフォルトの名無しさん
2022/03/07(月) 08:55:53.15ID:q3eUi8ps RustあげてるやつがRustの良さを何も理解できてないのがホント阿呆らしい
126デフォルトの名無しさん
2022/03/07(月) 09:07:37.44ID:MlZ6kc9H >>123
既にGoでGoのGC書いてるじゃん。
既にGoでGoのGC書いてるじゃん。
127デフォルトの名無しさん
2022/03/07(月) 10:35:08.70ID:otYxLRpr128デフォルトの名無しさん
2022/03/07(月) 11:00:36.82ID:s5yg+NZx >>127
Rustのメモリ管理の実現方式を理解出来てないと思う
コンパイル時に行われることと、コンパイルされた機械語が行うことの区別は出来てる?
Rustの所有権の処理はコンパイル時に行われるので、そのコンパイラがRustで書かれていようとGoで書かれていようと関係無い
Rustのメモリ管理の実現方式を理解出来てないと思う
コンパイル時に行われることと、コンパイルされた機械語が行うことの区別は出来てる?
Rustの所有権の処理はコンパイル時に行われるので、そのコンパイラがRustで書かれていようとGoで書かれていようと関係無い
129デフォルトの名無しさん
2022/03/07(月) 12:03:12.32ID:2hk0Nxfy130デフォルトの名無しさん
2022/03/07(月) 14:11:55.83ID:SxK5Ewlv >>123
どの言語に対するコンパイラもインタプリタも別のほとんどの言語で書ける
例えばプリミティブ以外は全てオブジェクト型になってしまうJavaScriptでもGoやRustのコンパイラを記述可能
もちろん記述可能性とは別の話として言語機能の強力さや高速性と省メモリ等の点から現存言語ではRustが最も有利であるだけにすぎない
どの言語に対するコンパイラもインタプリタも別のほとんどの言語で書ける
例えばプリミティブ以外は全てオブジェクト型になってしまうJavaScriptでもGoやRustのコンパイラを記述可能
もちろん記述可能性とは別の話として言語機能の強力さや高速性と省メモリ等の点から現存言語ではRustが最も有利であるだけにすぎない
131デフォルトの名無しさん
2022/03/07(月) 15:56:13.82ID:kssBp/wX133デフォルトの名無しさん
2022/03/07(月) 17:12:28.11ID:otYxLRpr134デフォルトの名無しさん
2022/03/07(月) 17:14:22.08ID:otYxLRpr135デフォルトの名無しさん
2022/03/07(月) 17:54:54.88ID:I/Rzn0lH コンパイラの仕事が何なのか知らない人がRustを推すのは流石に恥ずかしいからやめてくれ
Rust使ってる身としてはすごく迷惑
Rust使ってる身としてはすごく迷惑
136デフォルトの名無しさん
2022/03/07(月) 17:55:43.77ID:s5yg+NZx >>134
Rustの言語仕様の所有権による実行コードの安全性の保障は、コンパイラをRustで書いてもGoで書いても、同じように得られる
逆にRustでコンパイラ書いたとしても、それによってコンパイルされたコードがRustの所有権による安全性を得られるわけじゃない
Rustの言語仕様の所有権による実行コードの安全性の保障は、コンパイラをRustで書いてもGoで書いても、同じように得られる
逆にRustでコンパイラ書いたとしても、それによってコンパイルされたコードがRustの所有権による安全性を得られるわけじゃない
137デフォルトの名無しさん
2022/03/07(月) 18:08:24.58ID:kssBp/wX やはりおじさんはVM系言語しか使ったことがないようだな
会話が成立しない訳だ
会話が成立しない訳だ
138デフォルトの名無しさん
2022/03/07(月) 18:28:02.87ID:LwrKIEpB GoスレでマヌケなRust推しが暴れているという地獄
139デフォルトの名無しさん
2022/03/07(月) 19:04:12.73ID:SxK5Ewlv Rustの方が言語機能の強力さや高速性と省メモリ等の点から最も有利なだけにすぎないからね
ほとんどの言語でGoのコンパイラもRustのコンパイラも作ることが可能
この両者の区別ができないとね
ほとんどの言語でGoのコンパイラもRustのコンパイラも作ることが可能
この両者の区別ができないとね
140デフォルトの名無しさん
2022/03/07(月) 21:22:24.00ID:kssBp/wX いわゆるVM系の言語(Java、C#、JavaScript、Python、Rubyなど)はランタイム自体がインタプリタに含まれてるので意識しないんだろうな
なんか普通に恥ずかしいよね
コンパイルが何をしているのかも知らなかったなんて
最近のVM系言語でもJITしてるし理解してるものかと思ってた
JITはインタプリタのランタイムのスタックとマシンコードのスタックを引き継ぐ処理とか内部でやってる
そういうのもわからないんだ
rustだなんだという前に大学に編入してCSを勉強した方が良いのではないか
なんか普通に恥ずかしいよね
コンパイルが何をしているのかも知らなかったなんて
最近のVM系言語でもJITしてるし理解してるものかと思ってた
JITはインタプリタのランタイムのスタックとマシンコードのスタックを引き継ぐ処理とか内部でやってる
そういうのもわからないんだ
rustだなんだという前に大学に編入してCSを勉強した方が良いのではないか
141デフォルトの名無しさん
2022/03/08(火) 00:26:03.19ID:4ZhMXz51 なんでここまでボロが出る前にスッとROMに徹せられないんだろうね?
142デフォルトの名無しさん
2022/03/08(火) 02:39:31.07ID:59Y5NzBD >>140
そんなの知らなくていいよ
そんなの知らなくていいよ
143デフォルトの名無しさん
2022/03/08(火) 07:57:09.39ID:5mhqUY+j Rustのことは忘れて
スライスってよく考えたら中にサイズとキャパシティ持ってるだろうからlen(スライス)はそれを見てるだけなのか?
スライスってよく考えたら中にサイズとキャパシティ持ってるだろうからlen(スライス)はそれを見てるだけなのか?
144デフォルトの名無しさん
2022/03/08(火) 08:13:34.51ID:TkXU//aU >>143
おそらくそうだったと思うよ。
おそらくそうだったと思うよ。
145デフォルトの名無しさん
2022/03/08(火) 08:17:46.56ID:TkXU//aU146デフォルトの名無しさん
2022/03/08(火) 11:48:16.95ID:5mhqUY+j struct の中にスライスと長さを持たせてたよ…orz
147デフォルトの名無しさん
2022/03/09(水) 17:10:13.11ID:ZVLrsraT RustのVecだって同じじゃん...orz
148デフォルトの名無しさん
2022/03/09(水) 18:57:40.54ID:o8UVaHTv RustのスライスとGoのスライスは概念が異なる
Rustのスライスはポインタと長さの2点のみを持ち常に「参照」である
つまり「参照」ということは「本体」がある
本体は配列(=そのままだとスタック上で長さ固定)やVec(=ヒープ上で長さ可変)など
Rustのスライスはそれら本体の一部(もしくは全体)を指す「参照」という従属物
このように概念を整理して分離したことがGCのないRustの効率の良さに繋がっている
Rustのスライスはポインタと長さの2点のみを持ち常に「参照」である
つまり「参照」ということは「本体」がある
本体は配列(=そのままだとスタック上で長さ固定)やVec(=ヒープ上で長さ可変)など
Rustのスライスはそれら本体の一部(もしくは全体)を指す「参照」という従属物
このように概念を整理して分離したことがGCのないRustの効率の良さに繋がっている
149デフォルトの名無しさん
2022/03/09(水) 19:25:13.15ID:HVZ+1br4 まーた(ry
150デフォルトの名無しさん
2022/03/09(水) 19:26:23.08ID:BXzHKdLE >>148
Go のスライスの内部実装も知らない男の人って・・・
Go のスライスの内部実装も知らない男の人って・・・
151デフォルトの名無しさん
2022/03/09(水) 19:37:39.05ID:o8UVaHTv Goのスライスはうっかりデータ競合を起こしても自己責任
別変数に代入して各々に対して値を書き換えたりappendしたり可能だがもちろん互いに競合する
そして苦肉の策の結果としてappendでキャパシティを超えた時に両者がそこから分岐
一方でRustは言語仕様でデータ競合を起さないことを保証している
別変数に代入して各々に対して値を書き換えたりappendしたり可能だがもちろん互いに競合する
そして苦肉の策の結果としてappendでキャパシティを超えた時に両者がそこから分岐
一方でRustは言語仕様でデータ競合を起さないことを保証している
152デフォルトの名無しさん
2022/03/09(水) 19:52:31.32ID:2cDF56sN153デフォルトの名無しさん
2022/03/09(水) 23:07:53.69ID:JjWHIxM6 >>151
Goの欠点だな
Goの欠点だな
154デフォルトの名無しさん
2022/03/09(水) 23:15:13.75ID:kryzQ0zI Goのスライスは実質的には可変長配列として使うからね
155デフォルトの名無しさん
2022/03/09(水) 23:56:47.85ID:jIAUAwVH 嘘つきはRustの始まり。std::syncだって同期とが標準モジュールに入ってるし、atomic型だって同じ。並列操作ではgoは他の
言語に抜き出ている。goが競合を起こすのはgoroutine同士でデータを共有するような、”古い老人のような作り方”をしている
からでchannelを通さない、sync.Mutexを使ったこともないasync/awaitだけでRustライブラリの中がArc<Mutex<T>>に
なってる事も知らないド素人がイキがってるだけ。
スレ違いなので荒らすのは止めましょう
言語に抜き出ている。goが競合を起こすのはgoroutine同士でデータを共有するような、”古い老人のような作り方”をしている
からでchannelを通さない、sync.Mutexを使ったこともないasync/awaitだけでRustライブラリの中がArc<Mutex<T>>に
なってる事も知らないド素人がイキがってるだけ。
スレ違いなので荒らすのは止めましょう
156デフォルトの名無しさん
2022/03/10(木) 00:16:27.61ID:EmAP5Zv6 refrect.DeepEqual() って便利
だけど、単体テストでNG出たんで今日は寝ますね
(…どこが食い違ってるのか教えてはくれない)
だけど、単体テストでNG出たんで今日は寝ますね
(…どこが食い違ってるのか教えてはくれない)
157デフォルトの名無しさん
2022/03/10(木) 08:01:20.84ID:p2fYNkNX Javaやpythonからgoに来た人って絶対Rustにも行くよね?w
158デフォルトの名無しさん
2022/03/10(木) 08:05:56.68ID:EmAP5Zv6 皆さんストリンガーって保険のためにとか実装してる?
159デフォルトの名無しさん
2022/03/10(木) 08:06:54.36ID:EmAP5Zv6 別に行かない
160デフォルトの名無しさん
2022/03/10(木) 11:26:24.44ID:yulIAHTW 別にRustを使ってもデータ競合は防げるけど競合状態は防げないし、データ競合を防ぐ目的のために面倒なメモリ管理をやる気にはならないな
161デフォルトの名無しさん
2022/03/10(木) 14:34:23.63ID:oQD86hL5 JAVAから来ました
162デフォルトの名無しさん
2022/03/10(木) 23:25:33.20ID:mPwUhQcz163デフォルトの名無しさん
2022/03/11(金) 04:48:59.22ID:/mQhQdeo164デフォルトの名無しさん
2022/03/11(金) 10:28:51.56ID:MsCX3gC/ 今からGoですを勉強するのって意味ない?
rustとかいうやつのほうがいいの?
rustとかいうやつのほうがいいの?
165デフォルトの名無しさん
2022/03/11(金) 11:06:27.12ID:kr68tprG Goの採用はスタートアップなんかでも結構多いので意味無くはない
Rustは実際にはまだほとんど無い
とはいえGoをあえて勉強する必要があるかは微妙だな
こんなの経験なくてもチームに入ってからなんとなく空気読んで十分使えるし、
それができる程度に他言語の経験がないのであればGoはあまり意味のない言語だ
Rustは実際にはまだほとんど無い
とはいえGoをあえて勉強する必要があるかは微妙だな
こんなの経験なくてもチームに入ってからなんとなく空気読んで十分使えるし、
それができる程度に他言語の経験がないのであればGoはあまり意味のない言語だ
166デフォルトの名無しさん
2022/03/11(金) 11:39:54.49ID:H8qFXNfY >>164
「勉強」の意味による。
仕事につながる技術を身に着けたいなら、普及率が高くて求人も多いJavaやcのほうがいい。
学問としてプログラム言語を勉強したいなら、より原理的なlisp(scheme),haskell,cのほうがいい。
趣味でプログラムするのに勉強したいなら、手軽で教本も多いpythonあたりかね。
goやRustは中途半端なので、最初の選択肢にはならない。
「勉強」の意味による。
仕事につながる技術を身に着けたいなら、普及率が高くて求人も多いJavaやcのほうがいい。
学問としてプログラム言語を勉強したいなら、より原理的なlisp(scheme),haskell,cのほうがいい。
趣味でプログラムするのに勉強したいなら、手軽で教本も多いpythonあたりかね。
goやRustは中途半端なので、最初の選択肢にはならない。
167デフォルトの名無しさん
2022/03/11(金) 11:59:46.52ID:0bHD9k1s Goの戦場はニッチだからねぇ
汎用を求めるならJavaやC#
ハイエンドならC++
いっちょ大穴狙うならRust (次の次くらいに来るかも)
汎用を求めるならJavaやC#
ハイエンドならC++
いっちょ大穴狙うならRust (次の次くらいに来るかも)
168デフォルトの名無しさん
2022/03/11(金) 12:02:29.15ID:0bHD9k1s Java, C# は使えて当然、C++が分かるなら誉めてもらえる
169デフォルトの名無しさん
2022/03/11(金) 12:17:23.16ID:YhXLzsgi170デフォルトの名無しさん
2022/03/11(金) 12:19:29.55ID:YhXLzsgi goは言語自体はあまり面白くないからね
仕事で使う予定がないならもっと尖った言語の方が面白いだろう
仕事で使う予定がないならもっと尖った言語の方が面白いだろう
171デフォルトの名無しさん
2022/03/11(金) 12:42:59.72ID:MsCX3gC/ みなさんありがとうございます。
Javaとphpを仕事で使っていますが、Goの何でも自力で書く的なものに惹かれて将来的には仕事で使いたいと思いました。
Javaとphpを仕事で使っていますが、Goの何でも自力で書く的なものに惹かれて将来的には仕事で使いたいと思いました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】「国立ガラガラじゃん!」 「タダ券ばら撒かないんだっけ?」天皇杯決勝、6万7750人収容のスタンドに目立つ空席 [鉄チーズ烏★]
- 中国の渡航自粛、影響は限定的 日本人客が来店しやすく [♪♪♪★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★14 [BFU★]
- ゼレンスキー氏、アメリカの支援失う危険あるとウクライナ国民に演説 米和平案めぐり [1ゲットロボ★]
- 台湾有事での集団的自衛権行使に賛成48.8%、「反対」が44.2% ★3 [♪♪♪★]
- 【英FT】国土の大部分を日本の残忍な占領下におかれたという苦しみの記憶を今なお抱え続けている中国 [1ゲットロボ★]
- 他サポ 2025-261
- ハム専ファンフェス
- @@@令和七年大相撲九州場所 vol.11@@@
- 京都競馬4回5日目エリザベス女王杯★3
- 【D専】
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 【高市朗報】ホタテ業者「あ、中国に禁輸されても全然困ってないです」 [931948549]
- 高市早苗「G20サミット、なめられない服を選びました。外交交渉でマウント取れる服買わないとなぁ」大炎上 [165981677]
- 中国、高市早苗を国連に提訴。「国際社会に問う」 [271912485]
- 【実況】博衣こよりのえちえちゼルダの伝説 ムジュラの仮面🧪 ★7
- 【高市悲報】観光地から中国人🇨🇳が消え始める。。。。。。。。。。。。。日本人さあ、ほんとにこれでいいのか??? [573041775]
- 【画像】俺の散歩コースだけどどう思う?
