[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/25 01:58 / Filesize : 269 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rust part17



1 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:43:13.96 ID:Re0G7B20.net]
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part16

152 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 12:23:43.08 ID:lAl7R2Of.net]
>>143
あー、それ見てワカッタ風吹かしてんのな。「Rustのコンポーネントを多く導入」と言ってる時点で、styloだけじゃないし
2DレタリングのwebrenderもservoからのRust製だわ。”誰も”Geckoを置き換える=Geckoが無いなんて言ってない
https://github.com/servo/webrender

153 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 14:03:11.76 ID:f2tKHPpy.net]
>>148
F-Droidから入れてる
何故かlibllvm-14.soのリンクが出来ないと怒られてしまう
で入ってるllvmのバージョンが更新で15に上がってしまってる状態
俺環かも知れんね

154 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
あんまり自信がある訳じゃないんだけど、カーネルが64bitでユーザーランドが32bitみたいな環境だったりしない?

155 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>149
Geckoのコンポーネントを置き換える

Geckoを置き換える
は全然意味が違うでしょ

まあ日本語の問題で意図してるところは食い違ってないから反応するのはこれで終わりにするわ

156 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
グーグル、Rustで書かれたセキュアなOS「KataOS」を発表
https://japan.zdnet.com/article/35194751/

157 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 15:37:54.47 ID:f2tKHPpy.net]
>>148,151
すまぬ色々やってる中で入れたnightlyの影響だった
お騒がせした

158 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 03:30:17.24 ID:cvhlJCwu.net]
fucsia「僕はいらない子なの?」

159 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 07:05:26.07 ID:CJepXKVA.net]
>>153
昔「おおっ!!!あのグーグルがまた何か新しいことを始めたぞ!すごそうだ!」
今「まぁーーたはじまったよ・・・」

160 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:11:44.42 ID:H7L8/zfi.net]
Googleが立ち上げては潰してきたサービス一覧「Killed by Google」
killedbygoogle.com



161 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:23:33.38 ID:iHEkpSLR.net]
何も産まないよりは健全よね

162 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:35:06.09 ID:Dqx/r4FW.net]
役に立つかどうかわからんものに手を出せる余裕が
個別の結果に関わらず
部分的な成果の積み上げで会社をブーストさせるんよ

163 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:38:58.17 ID:Sj+PYk/j.net]
まあ堅そうな名前ではあるな

164 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:24:59.02 ID:j2B3ovC/.net]
IoT向けOSって言ってるし組み込みOSなんて元々百花繚乱だろ。
組み込み機器の脆弱性対応なんて大変だし、そもそもその手の脆弱性が入り込みにくい言語を採用するのは合理的だと思う。

165 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:46:33.84 ID:xwPbcXKV.net]
日本ってやらない理由、出来ない理由並べる奴が多いよな
多くの日本企業よりGoogleの方が多く生み出しているし世の役に立っている

166 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:48:40.76 ID:aUvB23KT.net]
南朝鮮ってやらない理由、出来ない理由並べる奴が多いよな 多くの南朝鮮企業よりGoogleの方が多く生み出しているし世の役に立っている

167 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 13:00:38.45 ID:xwPbcXKV.net]
Rust Foundationへの参加はNECやFUJITSUよりSamsungの方が早いんじゃないかなぁ
国内大手で積極的にRustを推していこうなんて所はなさそうに見えるし
組み込みのRenesasとかもやる気なさそうだしな

168 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 19:58:52.34 ID:+MAum9P/.net]
出来ない理由を考えるのではなく!

169 名前:デフォルトの名無しさん [2022/10/19(水) 21:32:43.94 ID:mHa4T+cl.net]
日本が後進国になってきたのは政治の責任が大きいけど
IT分野で遅れてるのは総じて教育水準が低いからだよ

170 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 22:51:58.05 ID:owfoFln4.net]
民主主義国は政治の責任=有権者の責任



171 名前:デフォルトの名無しさん [2022/10/19(水) 23:03:48.16 ID:kLmY2FYt.net]
>>167
利権差配と中抜きしか考えない国賊を礼讃して
統一創価売国与党に投票し続けたやつの責任だろ

172 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 00:02:58.60 ID:ce/AQgdF.net]
まったく読むに値しないクソ書き込みの羅列の中で
>>160 だけが唯一価値ある輝きをはなっている

173 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 13:00:10.90 ID:Px+TgmX7.net]
在日だらけ。IT分野で遅れてるのは米国(英語圏)・中国の人口差だし、日本の人口減でもある。
世界中で、歴史上、移民以外で人口減を解決した国は1つもない
そういう意味では韓国などはでは優れたソフトウエアは1つもない。馬鹿な半島はAndoridのOSを
握ろうとTizenなどというゴミを掲げたが、食いついたのはNTTドコモぐらい
いま韓国で起こってるのはソフトウエアサービスの””ガラパゴス化””であり、GoogleやAmazon
Apple Payなどに対して参入障壁を作り防御するような、大昔の古臭い日本あった不公正貿易。
民主党政権時代だって3年あったわけだが、利権

174 名前:と中抜きしかしてない。やったことは仕分けだが
1つも役に立たないどころか、地方医療を崩壊させ、気象変動へ対処できるインフラ投資を
一時的止めた害悪しかなかった。その他にも野田政権による執拗な消費税増税もあった。
今彼らは英国が減税を匂わせただけで大混乱していることを見ずに、消費税ゼロを掲げている。

卑劣にも矛先を反らし、リベラルなのに移民反対派で、リベラルなのに「国賊、売国」などという言葉を使い、
まるで戦争前夜か、共産主義や社会主義のような物言いをするアホが出る時点で若い人の人材不足といえる。
[]
[ここ壊れてます]

175 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 16:07:13.38 ID:zGrDbuOl.net]
英国が減税しただけで、支持率が7% になったw
米国の金利上昇で、韓国の金利も0.5% 上がったw

なのに、借金が1千兆円もある日本の金利が、0%w

狂った世界中の経済学者達が、日本は不正をしている。
日本国債は破綻しなければおかしいと言ってるw

外人が幾ら日本国債を売っても、金利が上がらない。
破綻しないw

いい加減、借金が1千兆円もあるという財務省の嘘に気付け!w

YouTube で勉強しろ。
【TVじゃ絶対言えない話】国の借金は嘘!?中田敦彦が解説

176 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 19:45:15.15 ID:xXJwtueL.net]
WEB+DB PRESS、何度目のRust入門なんだい?

177 名前:デフォルトの名無しさん [2022/10/21(金) 20:10:13.59 ID:HoCfXQGg.net]
Rust入門は初めて

178 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:22:06.02 ID:2TP3mE4K.net]
pythonとrustを一通り試してみた
for文の入れ子で外側のforをbreakできるとか、数値を1_000_000と表現できるとか、
そんなところでrustのほうが行き届いている感じがした

ただpythonのリスト内包表記、添え字の-1で配列の一番最後を表すとかそんなのは便利だな

179 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:26:14.55 ID:gnp0h5uN.net]
Rust入門という感じではないな
Rustを使ったWeb入門という感じ

180 名前:デフォルトの名無しさん [2022/10/21(金) 22:25:35.46 ID:YCtBy6Lb.net]
>>175
Web+DB Press読者は簡単なWebアプリ開発はいろんな言語で経験済みで理解しやすいだろうからチュートリアルの対象に選んだだけでは?



181 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 13:19:56.51 ID:OES5lhv+.net]
>>176
普段読まないけどRustなので買ってみた
なかなかわかりやすかった
基本文法の解説が明らかに足りないけど
サンプルを理解するだけならこの程度で良いのか
面倒な部分が表に出ないようにうまくサンプルを調整してるし

182 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:03:49.60 ID:Vp6sRBIs.net]
借用がどうGCに関係するのかよくわからない
うまく説明しているサイトはないですか?

183 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:38:11.55 ID:OES5lhv+.net]
まずスタックとヒープを理解せよ
これは口を酸っぱくして言ってる
でないとRustは理解できない

184 名前:デフォルトの名無しさん [2022/10/22(土) 21:39:04.07 ID:PO/EA+oY.net]
とりあえずThe Bookの4章
https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html

Rustをそれなりに習得しようと思うなら
The Bookとオライリー本を読むのが一番近道

185 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 23:56:07.88 ID:OES5lhv+.net]
両方とも初心者には辛いよなあ
わかりやすい入門書が待たれる

186 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 00:22:18.48 ID:LnniM1YV.net]
借用するときにデータをスタックに積む
スコープを抜けるときに一気にpopするので
GCがいらない、つまり、早い
heapだとGCのときにデータの移動が必要になる
ので遅い
この理解であってる?

187 名前:デフォルトの名無しさん [2022/10/23(日) 00:29:31.67 ID:jNoMv4k0.net]
ポインタとか参照とか他の言語で扱ったことない?

188 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 00:44:57.32 ID:h/oZflgJ.net]
heapが遅いの要因は、メモリの割り当て解放処理があるから処理量が多いとか、
割り当てた領域がバラバラになることでキャッシュ効率がさがることとかかと

189 名前:デフォルトの名無しさん [2022/10/23(日) 13:47:22.46 ID:/F23RQvw.net]
ページング処理みたいなのが、ヒープだと2重に行われるんじゃないの?

190 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 14:14:22.62 ID:ioVOctq2.net]
>>182
Rustでのその辺のメモリの動きはオライリー本に詳しく書いてあった気がするから読むべし



191 名前:デフォルトの名無しさん [2022/10/23(日) 15:30:09.10 ID:t4UBj2/5.net]
>>182
>>185
お前ら、具体的にどうされてるからスタックだと速いかわかって無いだろ、、、

192 名前:デフォルトの名無しさん mailto:age [2022/10/23(日) 18:33:19.09 ID:QEVtmAwk.net]
>>182
そんなに物事が単純なら良かったのに...
”スコープを抜けるときにGCがいらない、つまり、早い”、これは間違いでもある。インライン展開されるような高階関数なら良いが
ループ中でアロケーションしてしまうような記述をすると、その度に確保・解放されるので非効率になりかねないし、借用による
メモリーの管理ではないが、参照カウントを使用するSwiftでは、ループでボトルネックになることはある。
このためRustでは高階関数で書く事が一般的に(分かり易く)良い事とされる。あとスタックでどの言語も大体はスコープ外で
消えるのでヒープとスタックの区別は付けましょう

独立したGCスレッドが動く言語だと、スコープ外れでGCするとは限らないので、速い場合がある。一方で、高負荷な環境では
GCスレッドがありで、回収などインターラプトが入るのでRustが有利になる(=※こちらのほうがRustが重要視される理由)
いわゆるSTOP THE WORLD(DIO様風)だ。ただ、これが無ければ良いということではなく、循環参照などを作らなければ
問題ないという話で循環参照を作ってしまうのであれば、独立したGCスレッドは便利でもある

”GCのときにデータの移動が必要”になるかどうかは、GCのアルゴリズム次第であり、厳密には”データの移動が必要”になるのは
メモリーのフラグメント解消つまりコンパクション処理によるところが大きい。これは、近代的なOSでは似たような事を行っていて
これ自体が速度に大幅に影響を及ぼすとは言い難い

193 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 19:03:12.25 ID:NZM9O6ur.net]
>>188
> ループ中でアロケーションしてしまうような記述をすると
アホなコードで議論する必要あるの?

194 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 20:51:00.62 ID:h/oZflgJ.net]
一体何と何を比較しているのだ

195 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 22:09:39.72 ID:HOBBKeJ+.net]
なんかすごい早口で支離滅裂なこと言ってるけど
頭を整理した方が良いよ

196 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 16:50:56.92 ID:SgELnO58.net]
スコープを抜けるときにGCがいらない、つまり、早い

これが間違っている理由を教えてください

197 名前:はちみつ餃子 mailto:sage [2022/10/24(月) 18:09:05.87 ID:VKX4Fsrh.net]
ヒープメモリの管理はそれなりに重い処理だというのが論旨のように見える。

GC を使った場合のように不要なオブジェクトの判別をしていくコストは Rust では生じないが
それを除けば空いてる箇所と使用中の箇所を上手いこと管理する実行時コストは
GC (に付随するメモリ割り当て) でやってるのとたぶんそんなに差はないんじゃね。

198 名前:デフォルトの名無しさん [2022/10/24(月) 18:49:41.29 ID:8+UVFZyO.net]
>>192
>スコープを抜けるときにGCがいらない、つまり、早い

確保したメモリはいつ解放するんだよバカ。

199 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 19:05:34.14 ID:Off49nvS.net]
文法で制約したら、書き手もコンパイラも
変数の寿命を厳密に特定することができて便利だろって事で、
どこにどう確保すると速いとか、そういう話とは別では

200 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 19:14:17.25 ID:FdEAHzhz.net]
GCがないので速い←わかる
スコープを抜けたらpopするだけなので速い←わかる
スコープを抜けるときにGCがいらない←スコープとGCは何の関係もないよね



201 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 20:07:47.96 ID:rCA25jH/.net]
まあGCは常に動く可能性があるからな
逆に全く動かない可能性もある
そこはGCのアルゴリズムによりけり

202 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 21:01:10.53 ID:SgELnO58.net]
スタックを使っているから
pop すればそのままメモリが解放されるという意味では?

203 名前:デフォルトの名無しさん [2022/10/24(月) 21:39:23.30 ID:UxIqfb1a.net]
何と何を比べて何が速いと思ってるのか整理しなよ
話はそれからだ

204 名前:デフォルトの名無しさん [2022/10/24(月) 22:49:30.31 ID:c7GaYtEs.net]
>>198
動的データ全部スタックに積むのか。すげーな。

205 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 22:54:45.01 ID:9jOSWWIs.net]
そんなことよりコンパイルの遅さマジでテコ入れろYO、非力なCeleronでactix-webのコンパイルしたら10分とかふざけてんのか?

206 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:05:21.00 ID:XsMeW9pb.net]
コンセプトがコンパイル遅くしても賢くするだから無理

207 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:18:23.86 ID:b0depGja.net]
依存ライブラリまで全部自前ビルドさせられてるわけだからな
コンパイル済みcrateの配布とかやってくれればなんとかなりそうではあるが

208 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:42:51.24 ID:cJUnO/Lg.net]
コンパイル高速化はユーザー側でもいろいろ工夫の余地はあるが
コア数多いマシンを使うのがいちばん効果がある

209 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 07:14:07.04 ID:0Y9XP165.net]
分散コンパイルか、差分コンパイルか、常にバックエンドでコンパイルか

210 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 08:16:49.84 ID:A5TY3R0Y.net]
>>201
流石にもっと良いマシン買えでFA



211 名前:デフォルトの名無しさん [2022/10/25(火) 08:49:49.17 ID:1jHrAe9o.net]
でもRustって錆だよね

212 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 11:17:17.09 ID:5EjxpvPU.net]
ライブラリ類も複雑化・大型化の一途をたどっているご時世だし
Androidをビルド出来ないようなマシンは開発用としては時代遅れじゃね

213 名前:デフォルトの名無しさん [2022/10/25(火) 16:49:21.94 ID:pUVcngq8.net]
環境負荷を下げるためにもTier1プラットフォームはビルド済みか半分ビルド済みを配布できるようにすべき

214 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 18:21:31.05 ID:RZIJ148t.net]
structのフィールドにasyncのクロージャ持たせるの面倒だな

215 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:21:17.27 ID:+/Fbza6R.net]
>>210
Pin<Box<dyn Future<Output = T>>> ではだめ?

216 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 01:59:13.05 ID:TlW6c1+d.net]
>>211
Box<dyn Fn() -> Pin<Box<dyn Future<Output = T>>>>
こんな感じ

217 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 03:12:53.76 ID:J4zGWIbj.net]
>>200
全部とは言っていないローカル変数だけだ

218 名前:デフォルトの名無しさん [2022/10/26(水) 07:48:04.37 ID:i0Q+rT9S.net]
>>213
GoだってJavaだってローカル変数はスタックを利用する。

219 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 08:03:17.30 ID:xzd5i3vP.net]
>>214
Go は知らんが Java は値型しかスタックに確保しないよ
配列使うだけでヒープ使う

220 名前:デフォルトの名無しさん [2022/10/26(水) 10:03:48.91 ID:8iR+QuRY.net]
んなこと言ったらRustだってBox使うだけでヒープ使われるだろ



221 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:28:26.80 ID:poB2zSjv.net]
ピープアレルギーでも湧いたのか?

222 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:55:30.37 ID:xzd5i3vP.net]
>>216
そりゃあえてBox使えばヒープ使うわな
極論バカ乙w

223 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 12:39:08.43 ID:61QnplYU.net]
ヒープで思いついたけどtest::benchってなんで使用したメモリ量出てこないの?Rustだってアロケーター自作できるなら出せなくないと思うんだが

224 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 13:39:05.90 ID:29TlHyS0.net]
c言語なんかも int a[n] とかはスタックから取ってきてる。昔はmallocしてたが。
とはいえlinuxのスタック領域はヒープとそんな変わらん。

225 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 13:49:21.71 ID:OrdcPqRc.net]
環境によるが、Rust のスレッドごとのスタックサイズのデフォルトが2MBとかで
バカでかいローカル変数や引数を使おうとすると、
簡単に実行時エラー/スタックオーバーフローを実現できるという
ちなみに、String はヒープを使う

226 名前:デフォルトの名無しさん [2022/10/26(水) 14:58:21.99 ID:XcmPInF1.net]
>>220
ん?
何が変わらんの?

227 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 16:10:38.33 ID:+/Fbza6R.net]
>>219
issueはあるが放置されてる
https://github.com/rust-lang/rust/issues/22666
こういうのは欲しい人が積極的に動かないとなかなか進まないよね

228 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 18:56:12.77 ID:m/VlzFSs.net]
C 以外の言語は、すべて浅いコピー・shallow copy でしょ。
実体はコピーされずに、参照だけがコピーされる

たぶん、ローカル変数も参照だけがスタックにあって、
実体はヒープにあるのでしょ

229 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:32:11.84 ID:/Jbhrlo+.net]
そもそもスクリプト言語はマシンスタック使ってないから
C/C++/Rust/Goみたいなコンパイル言語とスクリプト言語(PythonとかRuby)とではメモリモデルが全く違う

JVMのJITはVMスタックをマシンスタックに引き継ぐって処理をやってるけど

230 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:35:12.65 ID:+/Fbza6R.net]
>>224
Cにdeep copyの概念ある?



231 名前:はちみつ餃子 mailto:sage [2022/10/26(水) 19:39:57.27 ID:UI6BPQPg.net]
>>226
たぶん >>224 は Java や C# などでいう参照型のことを言ってると思う。

232 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:41:30.91 ID:WAf5RIwU.net]
Box<T>って出現頻度の割に表記が長いよな
boxキーワードに変える案はどうなったんだ?

233 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 20:19:12.15 ID:SEIcgM+j.net]
>>220
まーた思いつきで適当なこと言ってるの?

234 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 21:39:27.98 ID:xibmu52f.net]
シャローコピーもディープコピーもプログラマに意識させるような言語の方がいいと思うけどなあ

235 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 17:59:59.22 ID:36nf4K/2.net]
C言語は低レベルすぎるからshallow copyやdeep copyを意識する必要がそもそもないしな
ポインタをそのまま複製するのがshallow copyでポインタをデリファレンスしてからその値を複製するのがdeep copyってだけやし

236 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 18:19:49.08 ID:mzG41rMz.net]
cだってポインタがネストされてたら順番に見てかないといけないのは他の言語と同じでしょ。
ネストを考慮しなくて良いならjavaだってcloneで一発コピーできる

237 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 22:00:27.64 ID:rMi5UTbc.net]
>>231
> C言語は低レベルすぎるからshallow copyやdeep copyを意識する必要がそもそもないしな
むしろ意識しまくりだろ
shallow copyとかdeep Copyとかのおしゃれな名前では呼んでないけど

238 名前:デフォルトの名無しさん [2022/10/27(木) 22:11:49.94 ID:olmwGZ8d.net]
複製おじさんディープコピー知らなかったもんねw

239 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 22:27:03.43 ID:DBkkmtck.net]
あえていうならCにおいては構造体のメンバをそのまま代入するのがshallow copy
構造体のメンバのポインタの領域を新しく領域を確保してコピー元の構造体を再帰的にmemcpyするのがdeep cooy

240 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 23:13:57.69 ID:qcIge2ki.net]
Cではというが大多数の言語がそうじゃね



241 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 00:02:58.28 ID:Rl5QKwW8.net]
deep copy は、ネストするから難しい

Ruby などは参照のリンクを断つために、
一旦、JSON などの文字列にしてから、オブジェクトを再構築したりする

Marshal もあるけど、色々な条件がつく。
IO, Proc, 特異メソッドが使えないとか

242 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 01:13:37.77 ID:jXOvR4PJ.net]
なんか話の脈絡も流れもなく各人が単語に反応して書きたいこと垂れ流すだけのスレと化してんな

243 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 03:43:44.96 ID:01u53tKZ.net]
高階関数はGCの性能に影響を及ぼすの?

244 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 09:27:53.24 ID:jXOvR4PJ.net]
Webpackの後継となる新バンドルツール「Turbopack」が登場。Rust製のネイティブアプリケーションでWebpackの700倍高速に。Next.js Conf 2022 - Publickey
https://www.publickey1.jp/blog/22/webpackturbopackrustwebpack700nextjs_conf_2022.html

245 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 16:15:00.57 ID:AMrJHSke.net]
JavaScriptっていつまでバンドルとかやるん?

246 名前:デフォルトの名無しさん [2022/10/28(金) 16:24:46.58 ID:muqJ433+.net]
いっそコンパイルしたら

247 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 16:28:04.57 ID:AMrJHSke.net]
wasmでそれやろうとしてるけど
wasmランタイムよりJavaScriptランタイムの方がまだ速いというトホホな状態

248 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:59:50.54 ID:eNUtjibx.net]
じゃあasmjsでよくね

249 名前:デフォルトの名無しさん [2022/10/30(日) 11:39:14.94 ID:zV+ownbZ.net]
何いってんだ
JavaScriptはRustの大口顧客だぞ
バカにするなんてとんでもない
JavaScriptの市場が大きいほどRustが儲かる仕組みなんだ

250 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:52:59.67 ID:Ffhte1rz.net]
moziraとgoogle, Microsoftと主要ブラウザメーカーが推進してるからな



251 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:41:21.29 ID:TG2fSMWC.net]
なんでvecの&mutに*が不必要なのか、いまいち理解してなかったけど

fn calc(n: &mut Vec<usize>) {
 (*n).push(1);
}

こういうことかー。そういうことだったのかー

252 名前:デフォルトの名無しさん [2022/10/30(日) 23:24:15.56 ID:tkb7REiJ.net]
struct User {
name : String,
age : u32,
}

fn main() {
let mut user = User {
name : "sato".to_string(),
age : 30,
};
user.age = 40;
user.name = "aaaa".to_string();
println!("{}{}", user.name, user.age);
}

"sato".to_string()で生成したStringは
user.name = "aaaa".to_string()後はどうなるの?
mainの}抜ける=プログラム終了時ようやく解放?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<269KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef