Rust part12

レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/08/24(火) 22:55:27.78ID:972JwtmU
公式
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のasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

前スレ
Rust part11
https://mevius.5ch.net/test/read.cgi/tech/1623857052/
836デフォルトの名無しさん
垢版 |
2021/10/24(日) 22:28:24.77ID:P21IrDZK
chromeユーザーだけどfirefoxの方が性能いいってマジなんか?
2021/10/24(日) 22:49:18.90ID:IF6Ria+p
https://amethyst.rs/posts/amethyst--starting-fresh
アメジストが死んだ... エンダァァァァァァァァァァァァァイヤァァァァァァ
rustのゲームエンジンはbevy一強になるのか
2021/10/24(日) 23:27:29.19ID:q0uVfP5C
GUIのツールキットはよ(`・ω・´ )
2021/10/24(日) 23:30:13.19ID:zP2CpnNP
ちゃんとリリースまでたどり着いたrustのゲームってあるの?
2021/10/24(日) 23:47:38.31ID:IF6Ria+p
>>838
icedじゃだめなん?
>>839
今のところない
試作を含むならネット上に転がっているよ

bevyね...レンダラーがwgpuだからね
現状はレイトレーシングとか無理
ゲームエンジンに挑戦するいい機会かも
2021/10/24(日) 23:55:17.08ID:J36a/Om9
>>824
C++はシフト演算子をなぜ入出力に使いまわそうとしたのか未だに理解できない
見にくく&わかりにくくなってる
842デフォルトの名無しさん
垢版 |
2021/10/25(月) 00:09:38.02ID:dMwiicPm
>>841
shellのリダイレクトに似てると思ったからだろ
2021/10/25(月) 00:21:35.96ID:dRHq7DJG
>>841
当時の C++ には可変長引数を現代的な型システムの枠組みで扱う方法がなかった。
(C++11 からは variadic template がある。 これも今となっては現代的と言えるかどうか……。)
新しいオブジェクトを追加したときにオーバーロードが可能である必要など
の諸々の事情が積み重なって演算子オーバーロードの仕組みを使うのが妥当という結論になり、
オーバーロード可能な演算子の中で比較的それらしく見えるのが << だったという経緯。

記法だけなら printf で不満は出なかっただろうけど、
printf (というか C の可変長引数の仕組み) は型システム的な保護が全然できないぶっ壊れなので
それを是とすることも出来なかった。 (廃止もしなかったけど。)

良くはないが他にどうにも出来なかったんだよ。
2021/10/25(月) 00:30:55.79ID:dRHq7DJG
歴史が長くなるとしょうもない事情の積み重ねでグダグダになるのもよくあること。
Rust もいずれはそうなる。 そしてそのときは新しい何かで置き換えられるんだよ。

でも Rust の場合は Edition という区切りで新しい Rust 自身で置き換えつつ
過去の Rust とも共存することを最初から意図したデザインにしているので
比較的長く維持されるんじゃないかな。
2021/10/25(月) 10:06:46.78ID:vPVmdF1Z
実際、型安全であるiostreamよりprintfのがよっぽどマシって議論はある。
しょーもない技術要素よりも視認性のがよっぽど大事だったりするわけで。
2021/10/25(月) 11:11:20.41ID:DCgj0YIV
>>840
iced日本語入力できなくない?
847デフォルトの名無しさん
垢版 |
2021/10/25(月) 11:14:28.05ID:vmRZrQEp
>>827
>「コンパイルが通れば大体動く」という感触はHaskellに近い
C/C++でも「コンパイルが通れば大体動く」けど
Haskellはコンパイル時にアルゴリズムミスまでチェックしてくれるのか?
848デフォルトの名無しさん
垢版 |
2021/10/25(月) 11:32:11.39ID:dMwiicPm
単にHaskellはC/C++よりも型安全性の度合いが強いってこと言いたいんだろ
2021/10/25(月) 11:51:09.02ID:fl6GjyRy
>>846
Font読み込めば出来るっぽいよ
850デフォルトの名無しさん
垢版 |
2021/10/25(月) 12:13:25.40ID:Zg5tRANc
>>847
アスペルガーか?
2021/10/25(月) 15:20:38.75ID:YZjFvrvy
Rustでゲームエンジン作ったら億万長者になれるのかな
2021/10/25(月) 17:18:01.27ID:uPCS+ug6
UnityやUnreal Engine並のを作れるならできるんじゃね
さもなきゃプロプライエタリなエンジンなんてきょうび流行らん
2021/10/25(月) 17:29:16.50ID:SuqdiOg2
Rustの方が圧倒的に高速なら儲かるんじゃね?
知らんけど
2021/10/25(月) 17:42:54.30ID:dQPM/Zr0
C++に勝てると思ってるの?
2021/10/25(月) 18:33:26.15ID:WHGdQ2cY
フラッピーバードでも億稼げるんだからいけるいける
2021/10/25(月) 18:38:23.54ID:SAo0WBxS
もうインディー2Dゲームぐらいはリリースされてるのかと思ったけど
まだなのか
2021/10/25(月) 19:12:07.52ID:rY5vWaGm
>>851
億万の金とリソースをかけなきゃ使い物になるエンジンなんて作れないんじゃないの?

まあ、そこまでいかなくともユーザーのいる既存のツールで開発止まっているもの(MMDとか)のクローン作ればワンチャンあるかもね。
2021/10/25(月) 20:03:31.88ID:cubP7NbG
ゲームエンジンでボトルネックとなるような重い処理ってなんなの
描画関連が重いならGPU側処理がメインでCPUで動くプログラムは何で書いても良いのでは
859デフォルトの名無しさん
垢版 |
2021/10/25(月) 20:21:36.23ID:tU+lYK+H
行列計算とメモリー帯域、PS5とPCを比べれば一目瞭然。PC4-25600でさえメモリー帯域が25GB/sで
デュアルチャネルで50GB/s、PS5は帯域幅218GB/s、
つまり描画が重いのではなく、CPUやGPUで行列計算した結果をメモリーへ格納したり再び取り出したりが重い。
描画だけなら4K再生できるVRAMの速度だけで終わる話
2021/10/25(月) 20:24:03.79ID:RLuxZR0I
>>851
儲かるかは知らんがbevy engineの作者はお賽銭で40万/月貰っているぞ
2021/10/25(月) 22:52:02.92ID:JVD00Zwu
ゲーム1本も出てないってそれなんかデカイ問題あるんじゃないの。
使ってみたら、あれこれ全然意味ないわ的な。
2021/10/25(月) 23:04:10.31ID:WHGdQ2cY
そらまあUnityとかみたいなガチゲームエンジンとかと比べたら意味ないんじゃね
2021/10/26(火) 00:13:42.72ID:T+NfAItu
ゲームとか組み込みと並んで過去の資産が積み上がっているところだろう
現状グラフィックAPIなどのバックエンドは全部C/C++だぞ
一朝一夕の話ではないが、取り組み続ける必要がある
とりあえずコールオブデューティのTreyarchは触っているぽい
2021/10/26(火) 00:19:35.84ID:T+NfAItu
インディ→ue4かunity
大手→ゲームの開発スパン3-4年+ゲームエンジン開発期間

今から積極的取り組んでも公表できる成果ができるは8-10年じゃない
そういえば任天堂もrust人材を募集してたよ
2021/10/26(火) 09:14:11.61ID:1uavI5d4
カスタムアロケータ回りがしょぼいからガチのゲームエンジン用としては現状まだきついのでは
2021/10/26(火) 09:43:34.49ID:AMOvMfiW
たしかにコンシューマゲーム会社なんかがRust採用を進めていく、ってのはなんかありそうだね
プロダクトのプロトタイプ作成とかめっちゃあると思うんだけど、そういうのとかで、どんどん試してみて欲しい
彼らがRustコミュニティに貢献してくれるのか、っていうとなんか怪しい気はするけど
2021/10/26(火) 11:03:35.61ID:ftLfN9xo
最近はマイコンもセキュリティ機能が重要視されているけど
処理系は相変わらずC/C++でRustを推進みたいな流れにはなっていない矛盾
2021/10/26(火) 11:18:59.50ID:BJDScnmh
そもそも組み込みで使えるrustコンパイラがないからな
2021/10/26(火) 12:47:26.53ID:hwHjfkE+
限定的ながらCortex-M用のバックエンドがあるじゃん
2021/10/26(火) 13:14:38.26ID:I5hwU/3x
俺のH8はどうなるんや
2021/10/26(火) 14:24:23.79ID:ZxZWHA9I
LLVMバックエンドがあるならなんとかできるのでは
ないなら知らん
2021/10/26(火) 15:31:08.95ID:bUwN0t0N
>>870
RL78に乗り換えてどうぞ。LLVMバックエンドもあるよ
2021/10/26(火) 15:43:31.64ID:BNqSw8pO
僕はRX-78-2からRX-78NT-1に乗り換えたよ
みんなもそうしなよ
2021/10/26(火) 15:50:06.56ID:BJDScnmh
嘘だと言ってよバーニィ
2021/10/26(火) 15:54:33.07ID:BJDScnmh
真面目な話Green Hillsが対応したら組み込みでも大分状況変わると思うんだが
なんか内部では研究してるみたいだし
2021/10/26(火) 16:50:59.50ID:BwJyZYHo
ルネサスは近年arm32bitとしてraファミリ出してる。h8とかsuperhな人は今すぐ乗り換えろ
2021/10/26(火) 17:52:31.12ID:9Njhbr90
バックエンドがある組み込み向けISAはCortex-M系、RISC-V系、RL78、AVR8あたり?

>>876
RAで済むなら他社のCortex-M系マイコンでも良いんじゃね感が・・・
2021/10/26(火) 20:33:41.25ID:T+NfAItu
>>865
基本カスタムアロケータは自作では?
2021/10/26(火) 21:43:49.66ID:BJDScnmh
アロケータ自作は大げさじゃないか
heaplessクレートでどうにかなるんじゃないかな
オレは使ったことないけど
2021/10/26(火) 21:51:14.59ID:PDIGoDZx
Unityでいけるくらいならデフォルトのアロケータで十分では?
jemallocとかに切り替えてもいいけど、どちらにしても自作するほどかね
881デフォルトの名無しさん
垢版 |
2021/10/26(火) 21:59:07.68ID:zVG+0sad
うんこ
882デフォルトの名無しさん
垢版 |
2021/10/26(火) 22:58:46.15ID:Fg4TonRG
Unity使うなら内部のGCはBoehm GCなんだからGC_MALLOC使ったほうが良いのでは?
オレはRc<T>使いながらBoehmが使えるのか知らんけど
2021/10/27(水) 00:00:42.78ID:6YxZEOiV
別にゲームにカスタムアロケータが必須なんてことはないと思うが
UnityみたいにGCありの言語で書く場合にGCのスパイクが許容できないから
独自のメモリプールとかを書かざるを得ないのでは
それともC++でもアロケータ自作してるのか?
2021/10/27(水) 00:23:45.53ID:c5Twcn5s
UnityってBoehm GCなんだ?
それで十分動くんならRustにもGCあってもよかったんじゃない?
2021/10/27(水) 00:29:03.79ID:QIbcJ+ZF
ならGo使えば良くない?
886デフォルトの名無しさん
垢版 |
2021/10/27(水) 00:46:21.16ID:l1Jw+QgM
goはboehmじゃなく2017年ごろまでtcmallocで今は派生(随分、中身が違う)してるはず
2021/10/27(水) 07:18:35.73ID:4kTRaQF8
Boehmてストップザ・ワールドは起こらんの?
888デフォルトの名無しさん
垢版 |
2021/10/27(水) 08:48:37.83ID:NxiqMK2Z
Boehmってカタカナ的には何て読むの?
2021/10/27(水) 09:08:54.86ID:CWN4UblG
ボエヒムじゃないの?
2021/10/27(水) 10:46:43.20ID:OgmKOgHT
ベームかボームだろ、ボエヒムとかワロタw
2021/10/27(水) 11:14:08.33ID:7BguKBbd
ドラクエの呪文みたいだな
892デフォルトの名無しさん
垢版 |
2021/10/27(水) 11:35:17.90ID:Ru0zcXw7
ドイツ語のoeは日本語ではエって転写される
2021/10/27(水) 12:01:22.63ID:dNMmh9m9
Phoenix
2021/10/27(水) 12:11:52.89ID:AHUxp5wd
412 名前: 以下、名無しにかわりましてVIPがお送りします 投稿日: 2013/01/19(土) 21:03:25.42 ID:a2pD/tlo0

FランのFはフェニックスのFや!
例えこんなところで落ちぶれても不死鳥のごとく上流階級に返り咲くんや!!

414 名前: 以下、名無しにかわりましてVIPがお送りします 投稿日: 2013/01/19(土) 21:04:02.87 ID:dT9mn0sK0

>>412
フェニックスは「phoenix」
895デフォルトの名無しさん
垢版 |
2021/10/27(水) 14:01:22.92ID:t2iD5tO8
cafe la boheme
896デフォルトの名無しさん
垢版 |
2021/10/28(木) 12:12:05.45ID:hM84Yf/1
>>887
スレチだが、Boehmなので本来はSTWだけなのでUnityにGCラグが発生していたことは有名ですが、2018/12頃に
インクリメンタルGCが出来て改善された。
https://blog.unity.com/technology/feature-preview-incremental-garbage-collection
またUnityでゲームなどを作るときに良くやるのがGCを動かさないこと(=オブジェクトを破棄しない)で
オブジェクトプールを使用して1度作ったオブジェクトをプールして置き破棄させない方法など、Unityにある
文字列比較などを使用しないなど細かい事をやる。本末転倒といえばその通り
2021/10/29(金) 02:30:41.55ID:dwfT6x3M
典型的なバッドノウハウだな
とはいえ日本でUnityが一番つかわれているであろう現場のモバイルゲーム開発は
昔はケータイJavaのゲーム開発やってた場合が多いのでその辺のGCバッドノウハウに慣れちゃってるという
Boehmはボエーンて読んでるわ
2021/10/29(金) 02:58:27.64ID:j8WlttkF
oe はドイツ語の o の代替綴りとしてあてられることが多い。
つまり boehm の本来の綴りは bohm ってことね。
o はオの口の音でエという感じなので音としては中途半端で、カタカナに当てはめにくい。

ドイツ語の発音通りをあえてカタカナにするならボェーンに聞こえるんだけど、
bohm という人名は通例ではベームと表記してるね。
2021/10/29(金) 02:58:48.47ID:j8WlttkF
あれ? 2ch に投稿したらウムラウトが消えてる……。
2021/10/29(金) 03:36:42.46ID:Ws4Kkx5X
appleをアップルと記載するような文化やからね。カタカナにしてしまったら本来の発音との差異なんて気にしたらキリがない
2021/10/29(金) 04:15:21.99ID:feAEAXNj
名女優のオードリー・ヘップバーンと
ローマ字表記のヘボン式で有名なヘボン氏が実は同じ綴り同じ発音の同じ姓みたいなもんか
902デフォルトの名無しさん
垢版 |
2021/10/29(金) 05:16:40.74ID:eAaOJvH1
ドイチュ語と描いてない >>898 は失格
2021/10/29(金) 21:33:27.38ID://DLIqvB
まじかあ、これが可能だったのかあ

let v = vec![1, 2, 3];
println!("{}", v[if true { 1 } else { 2 }]);
2021/10/29(金) 23:53:13.86ID:3N24c0Lq
>>901

ヘボンさんは自分でも気に入って「平文」なんてハンコ
持ってたくらいだから定着しちゃったんだよなw
2021/10/30(土) 00:22:25.21ID:9U1YWI6I
音韻と音声は異なる。 ある言語で同じ音だと認められる音が音韻で、
たとえば日本語だとシンブンシという言葉に表れる二個のンは実際には違う音
なのに同じ音として処理している。
(だからヘボン式ローマ字では書き分けるルールになっている。)

音韻として同じでも音声として幅はあり、そして音韻は言語に依存するもんだから、
外国語の音を転写してくるとどう頑張ったって辻褄の合わない部分は出てくる。
2021/10/30(土) 01:29:07.34ID:fDTZDMBU
>>901
唐鳳は上手いよな
2021/10/30(土) 02:41:12.91ID:z8LGC696
いつの間にか[T; N]にIntoIteratorがimplされてるな
しかも興味深いことにVec等と異なり消費されないようだ
借用ルール的にはどういう扱い?
2021/10/30(土) 08:30:57.45ID:zPV0av3I
イテレータが理解できないやつ定期的に湧くな
909デフォルトの名無しさん
垢版 |
2021/10/30(土) 09:56:39.69ID:gRDEN/XN
常駐
2021/10/30(土) 11:34:48.67ID:cxTfS1zf
>>902
ドイちェン
2021/10/30(土) 20:52:05.52ID:/cDwb9ic
>>907
Rust 1.53.0で配列にIntoIteratorが実装された
あと識別子に日本語も使えるようになった
配列は要素がCopyを実装しているかどうかで所有権の扱いが変わる

#[derive(Debug,Clone,Copy)]
struct 構造体 {
 値: isize,
}
fn main() {
 let 配列 = [構造体{値:1}, 構造体{値:2}, 構造体{値:3}];
 for 変数 in 配列 {
  println!("{:?}", 変数);
 }
 println!("{:?}", 配列[0]);
}

例えばこれはコンパイルが通って動くけど
構造体のderiveのCopyを外すと
配列の所有権はfor in内部のinto_iter()で移動してしまいコンパイルが通らなくなる
912デフォルトの名無しさん
垢版 |
2021/10/30(土) 21:00:13.45ID:zJlZfWf6
>>911
ぶっちゃけ日本語の識別子わかりやすいって思ってしまった
2021/10/30(土) 22:32:29.50ID:EbhCJ5wH
日本語識別子わかりやすいんだけど入力に手間がかかるのがつらい
2021/10/30(土) 23:29:17.10ID:s2ubgEFJ
let v0 = vec![1, 2, 3];
let mut v1 = v0;
v1.push(120);

let mut v0 = vec![1, 2, 3];
let v1 = &mut v0;
v1.push(120);

所有権関連で試してみてるんだけど、この二つの違いってなんなん?
いまいちよくわからん
上のはmutでないvecをlet mutの変数に入れるとpushできてまうし
下のはlet mutでない変数なのに&mutでいれるとpushできてまう
2021/10/30(土) 23:56:55.99ID:cJtJXOgj
https://doc.rust-lang.org/rust-by-example/scope/move/mut.html
2021/10/31(日) 00:40:09.42ID:ndmOeSWD
>>914
それぞれpushした後にv0とv1がどうなってるか確認してみるとわかる
917デフォルトの名無しさん
垢版 |
2021/10/31(日) 01:41:05.72ID:e5ZzvOAs
うんこ荒らすな!
918デフォルトの名無しさん
垢版 |
2021/10/31(日) 02:16:55.91ID:HeT/GYnp
すまんがVSCode + Rust-Analyzerで勉強中なんだけどさ
数ヶ月前は変数の型が表示されていたのに、今じゃ全然表示されなくなっちゃったんだけど・・・・どうすればいいんだぜ?
2021/10/31(日) 03:00:17.77ID:9uKpC+QX
int * constみたいなもん

参照先のアドレスは変更不可だけどそのアドレスが指してるvectorは&mutだから変更可能
2021/10/31(日) 03:02:55.52ID:nF8ypkXG
>>914
他の言語での余計な知識を捨て去ってゼロから考えるとわかりやすかったよ
今回の件で関係するルールは単純でこれだけかな?

【所有権】
・所有権を持てるのは一人だけ
・使う(=代入や関数引数も含まれる)と所有権は移動する
・ただしCopyトレイト実装型は使う時にCopyされるので所有権は移動しない

【所有権を持つ可変と非可変】
・その変数の中身を書き換える予定があるなら変数を可変(mut)に宣言しておく
・他の変数に代入しなおせば可変か非可変か変更可能(つまりその変数を使う時の制限ヒント)

【参照(=貸出=借用)】
・所有権が移動されたくなければ参照で貸し出す
・可変参照(&mut)の貸し出しは1人のみに参照独占で元も可変変数であること
・非可変参照(&)の貸し出しは同時に何人でも可能
・まとめるとsingle writer or multi readers

所有権を明確にするのはメモリ自動解放のため
可変を明確にするのは並行(concurrent)/並列(parallel)での競合回避のため
921デフォルトの名無しさん
垢版 |
2021/10/31(日) 07:46:34.10ID:dD8mFzoB
>>918

inlayHints
2021/10/31(日) 09:44:05.10ID:726CqcoT
所有権を伸ばして発音すると昇龍拳みたいに聞こえる
出掛かりが無敵なところも似てる
2021/10/31(日) 09:51:39.37ID:5rE8GYET
ヒカヘンサンショウ
924デフォルトの名無しさん
垢版 |
2021/10/31(日) 13:37:02.02ID:r7nTmIjE
丁寧で優しい920を弄りたくないけど、これを読める人は914のような質問はしないね
2021/10/31(日) 13:58:11.88ID:yTUS2Zye
以下の関数をジェネリックにする方法ありますか?
fn is_one_two_three<A: AsRef<[isize]>>(a: A) {
 assert_eq!(&[1, 2, 3], a.as_ref());
}
fn main() {
 let a = [1, 2, 3];
 is_one_two_three(a);
 let a = vec![1, 2, 3];
 is_one_two_three(a);
}
配列もVecも受け取る関数でこれはコンパイルも通り動いているのですが
isizeと型が決め打ちのところをジェネリックにTとしたいです
どうするとよいでしょうか?
2021/10/31(日) 14:34:45.61ID:ZiqPaZpd
>>925
数値型を一般化する trait を使うのが普通かな。
自分で定義しても良いが num_traits::FromPrimitive を使うならこんな感じ
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2021&gist=1fbd536dd6c9ea76beb20a666b085190
2021/10/31(日) 16:04:00.70ID:2p54m3kz
>>914
気持ちの上では他の言語と対応付けるのではなく Rust のルールで理解すべきという点で >>920
同意ではあるんだが、そうは言っても知っていると引っ張られるのも仕方のない話で、
入門初期では多少はしょうがないとも思う。

あえて C++ で同等のものに置き換えるとするとこんな感じかな。

#include <vector>

int main(void) {
{
const std::vector<int> v0 = {1, 2, 3};
std::vector<int> v1 = v0;
v1.push_back(120);
}
{
std::vector<int> v0 = {1, 2, 3};
std::vector<int>* const v1 = &v0;
v1->push_back(120);
}
}

この場合は所有権の概念はあまり関係なくて
メソッド呼出しの演算子が参照を自動で調整してしまうのも混乱の原因になってる気がする。
mut が何にかかっているのか見えにくい。
2021/10/31(日) 16:25:11.82ID:KIvWC7vb
>>927
少なくとも上は全く同等じゃない
C++では表現出来ない
2021/10/31(日) 16:52:46.17ID:2p54m3kz
>>928
ムーブの仕組みが違うのはしょうがない。
この場合は const 性の話だと思ったから……
2021/10/31(日) 17:14:21.91ID:WrAvX4Kw
C++で考えるのは弊害しかないじゃん
何がしょうがないだよ
2021/10/31(日) 17:47:23.34ID:dE1SXutD
弊害しかないは言いすぎ
この場合mutをどこに付けると何が可変になるかの話だから
C++でconstをどこに付けると何が不変になるのかを例に出すのは自然なたとえだと思いますよ
2021/10/31(日) 21:58:15.04ID:4rIS02S1
let mut vec0 = vec![vec![0, 2, 3]; 3];

for mut i in vec0.iter_mut() {
 i.push(9);
}

for mut i in &mut vec0 {
 i.push(9);
}

この二つのループの意味は同じ?
こういう二つの書き方があるのでちょっとわかりにくい気がする
2021/10/31(日) 22:14:30.87ID:4rIS02S1
へー、これが通るんだ
ちょっと笑った

let vec0 = vec![0, 2, 3];
let mut vec0 = vec0;
vec0.push(99);
934デフォルトの名無しさん
垢版 |
2021/10/31(日) 22:21:16.21ID:xmsO/hLH
>>933
シャドーイングだから当たり前でしょ
2021/10/31(日) 22:22:32.67ID:fTPwCWVK
シャドーイングOKな言語でもlintが禁止してきてイラっとする
2021/10/31(日) 22:31:01.48ID:4rIS02S1
>>934
状態まで置き換え可能なのはおかしいような気がする
せっかく不変変数にしてるのに事実上代入可能にしてることに何の意味があるんだろう
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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