公式
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/
探検
Rust part12
■ このスレッドは過去ログ倉庫に格納されています
2021/08/24(火) 22:55:27.78ID:972JwtmU
334デフォルトの名無しさん
2021/09/08(水) 08:14:48.98ID:bql1CtjZ >>332
そんなことはない
スマホアプリならKotlinとSwiftの2種類を無駄に覚えずともJavaScriptだけで両OS向けスマホアプリ作成が可能
もちろんスマホでもウェブアプリが動きアプリの種類によってはウェブアプリで十分なためスマホアプリを作らないケースも出ている
一方でRustで書いてAndroid上でツワモノもいるがそれはおいとくとして
Rustをこの件で使うケースはウェブブラウザで動くWasmのプログラミングする時かサーバーサイド側
あとはGoogleがAndroid OS開発にRustを使い始めた
そんなことはない
スマホアプリならKotlinとSwiftの2種類を無駄に覚えずともJavaScriptだけで両OS向けスマホアプリ作成が可能
もちろんスマホでもウェブアプリが動きアプリの種類によってはウェブアプリで十分なためスマホアプリを作らないケースも出ている
一方でRustで書いてAndroid上でツワモノもいるがそれはおいとくとして
Rustをこの件で使うケースはウェブブラウザで動くWasmのプログラミングする時かサーバーサイド側
あとはGoogleがAndroid OS開発にRustを使い始めた
335デフォルトの名無しさん
2021/09/08(水) 14:35:34.40ID:kw5H9VGz めっちゃWasm使ってるわ、使い心地としてはgoのが良いのだが
てか絶対JS書きたくない勢以外は勧められないけどな
エントリーポイントで4〜5行JS書かざるを得ないが、そこはコピペだから俺は1行も書いてない
てか絶対JS書きたくない勢以外は勧められないけどな
エントリーポイントで4〜5行JS書かざるを得ないが、そこはコピペだから俺は1行も書いてない
336デフォルトの名無しさん
2021/09/08(水) 19:04:28.13ID:beXhRlkk >>335
javascriptからwasmにディスパッチする際のオーバーヘッドってどう?
javascriptからwasmにディスパッチする際のオーバーヘッドってどう?
337デフォルトの名無しさん
2021/09/08(水) 19:45:38.33ID:tR72XlKG getopt()みたいなのでRust標準はどのクレイト?
338デフォルトの名無しさん
2021/09/08(水) 20:27:20.45ID:aH1RnViv clapだけど、それを使ったさらに便利なstructoptのほうがおすすめかも
339デフォルトの名無しさん
2021/09/08(水) 21:24:09.27ID:Ug8WkgwI clapはv3でstructoptの機能を取り込むから、今ならclapの3.0.0-beta4を使うのでもいいかも
340デフォルトの名無しさん
2021/09/08(水) 21:44:07.80ID:XbOUeFJA >>339
その後、structoptはどうなるの?
その後、structoptはどうなるの?
341デフォルトの名無しさん
2021/09/08(水) 23:46:53.75ID:tR72XlKG342デフォルトの名無しさん
2021/09/09(木) 00:04:52.59ID:fa/WJTRs マクロは見やすさだけじゃなくてコンパイル時に諸々チェックされるのが嬉しい
343デフォルトの名無しさん
2021/09/09(木) 20:16:33.24ID:Rwhy6P/q 数値の並びがある時に
その中の一番大きなものがある場所(index)が欲しいのですが
Rustではどう書くとよいでしょうか?
その中の一番大きなものがある場所(index)が欲しいのですが
Rustではどう書くとよいでしょうか?
344デフォルトの名無しさん
2021/09/09(木) 20:38:00.34ID:fa/WJTRs >>343
たとえばこう
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c7a0d0459c540d7b373b124d7faf239a
たとえばこう
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c7a0d0459c540d7b373b124d7faf239a
345デフォルトの名無しさん
2021/09/09(木) 21:09:46.20ID:18O2MBOf >>344
copied()っているっけ?
copied()っているっけ?
346デフォルトの名無しさん
2021/09/09(木) 21:32:28.08ID:Rwhy6P/q ありがとうございます
無しでもいけました
別の質問です
Vecにスライス(の各値のコピー)をappendしたいのですが
append()メソッドはVecしか引数に取れず困っています
どうすればいいでしょうか?
無しでもいけました
別の質問です
Vecにスライス(の各値のコピー)をappendしたいのですが
append()メソッドはVecしか引数に取れず困っています
どうすればいいでしょうか?
347デフォルトの名無しさん
2021/09/09(木) 21:36:39.36ID:dEhWYfPh ちったあググれよ
教えて君は嫌われるよ
教えて君は嫌われるよ
348デフォルトの名無しさん
2021/09/09(木) 21:55:23.66ID:aKI9+8DZ349デフォルトの名無しさん
2021/09/09(木) 22:34:44.73ID:18O2MBOf >>346
append()はその名前から想像しにくい実はムーブで引数側のVecは空になるw
じゃあappendはどうすればいいかというと
1つだけappendするpush()の複数版のpush_all()が元々あって
それは名前変更で今はextend_from_slice()になった
がその中身はより一般化したExtendトレイトのextend()を呼んでるだけになったので
結論としてはv.extend(&a)が正解
append()はその名前から想像しにくい実はムーブで引数側のVecは空になるw
じゃあappendはどうすればいいかというと
1つだけappendするpush()の複数版のpush_all()が元々あって
それは名前変更で今はextend_from_slice()になった
がその中身はより一般化したExtendトレイトのextend()を呼んでるだけになったので
結論としてはv.extend(&a)が正解
350デフォルトの名無しさん
2021/09/09(木) 23:25:03.49ID:12Nq5czF Rust 1.55.0 リリース
351デフォルトの名無しさん
2021/09/10(金) 01:12:44.66ID:t0Gbnfvj faqのような気がするんだが、以下のようなコードって
どうすればコンパイル通る?
#[derive (Copy)]
struct St{
s: String
}
fn main(){
let ar = [St{s: String::from("str")}; 10];
}
どうすればコンパイル通る?
#[derive (Copy)]
struct St{
s: String
}
fn main(){
let ar = [St{s: String::from("str")}; 10];
}
352デフォルトの名無しさん
2021/09/10(金) 01:34:46.88ID:Dnq/g++J 参照を配列に格納するか
let st = St{s: String::from("str")};
let array = [&st; 10];
Stringじゃなく&strにするか
#[derive (Debug, Clone, Copy)]
struct St{
s: &'static str
}
かな?
let st = St{s: String::from("str")};
let array = [&st; 10];
Stringじゃなく&strにするか
#[derive (Debug, Clone, Copy)]
struct St{
s: &'static str
}
かな?
353デフォルトの名無しさん
2021/09/10(金) 01:38:58.21ID:t0Gbnfvj354デフォルトの名無しさん
2021/09/10(金) 01:44:26.77ID:59f2QwjZ355デフォルトの名無しさん
2021/09/10(金) 05:44:54.18ID:XIGB6bHM もはやご希望のものかどうかはわからんが
#[derive(Clone)]
struct St{
s: String
}
fn main(){
let ar = vec![St {s: String::from("str")}; 10];
}
CopyをCloneして配列をvecにしただけ
#[derive(Clone)]
struct St{
s: String
}
fn main(){
let ar = vec![St {s: String::from("str")}; 10];
}
CopyをCloneして配列をvecにしただけ
356デフォルトの名無しさん
2021/09/10(金) 06:59:27.65ID:59f2QwjZ357デフォルトの名無しさん
2021/09/10(金) 07:55:51.69ID:tPSWyt2L358デフォルトの名無しさん
2021/09/10(金) 13:58:45.81ID:iOAXb/4V >>351
その後の用途によって7通りのやり方がある
let st = St {s: &"str"}; の場合は
let ar = [st; 10];
let ar = [&st; 10];
let ar = vec![st; 10];
let ar = vec![&st; 10]; の4通りが使い分け可能で
1番目はまとめて let ar = [St {s: &"str"}; 10];
3番目はまとめて let ar = vec![St {s: &"str"}; 10]; と省略可能
2番めと4番目が省略できない理由は参照なのに実体が変数にバインドされていないため
let st = St {s: String::from("str")}; の場合は
let ar = [st; 10]; の1番目だけは出来なくて
let ar = [&st; 10];
let ar = vec![st; 10];
let ar = vec![&st; 10]; の3通りが可能
3番目はまとめて let ar3 = vec![St {s: String::from("str")}; 10]; と省略可能
1番目が出来ない理由はヒープ上に作られるStringを暗黙的にコピーできないため
その後の用途によって7通りのやり方がある
let st = St {s: &"str"}; の場合は
let ar = [st; 10];
let ar = [&st; 10];
let ar = vec![st; 10];
let ar = vec![&st; 10]; の4通りが使い分け可能で
1番目はまとめて let ar = [St {s: &"str"}; 10];
3番目はまとめて let ar = vec![St {s: &"str"}; 10]; と省略可能
2番めと4番目が省略できない理由は参照なのに実体が変数にバインドされていないため
let st = St {s: String::from("str")}; の場合は
let ar = [st; 10]; の1番目だけは出来なくて
let ar = [&st; 10];
let ar = vec![st; 10];
let ar = vec![&st; 10]; の3通りが可能
3番目はまとめて let ar3 = vec![St {s: String::from("str")}; 10]; と省略可能
1番目が出来ない理由はヒープ上に作られるStringを暗黙的にコピーできないため
359デフォルトの名無しさん
2021/09/10(金) 15:18:43.49ID:ylBsVH1G 無駄な長文乙
360デフォルトの名無しさん
2021/09/11(土) 02:12:58.97ID:xfwty4qw 数百行程度で、Rustらしいコードの例ってありませんか?
361デフォルトの名無しさん
2021/09/11(土) 02:31:10.17ID:PFLibieQ362デフォルトの名無しさん
2021/09/11(土) 02:47:02.21ID:xfwty4qw >>361
学習のために自分で読むだけです
学習のために自分で読むだけです
363デフォルトの名無しさん
2021/09/11(土) 02:58:05.44ID:s9euJTi1 現状はどのレベル?
とりあえず入門書は読み終わったって感じ?
とりあえず入門書は読み終わったって感じ?
364デフォルトの名無しさん
2021/09/11(土) 03:10:01.40ID:w5S7rLqj365デフォルトの名無しさん
2021/09/11(土) 04:59:53.97ID:7r8uHUGr ただのコード例ってのとは違うけどこれ読み進めるとかどうだろう
https://rust-unofficial.github.io/too-many-lists/index.html
Linked Listを色々頑張るやつ
https://rust-unofficial.github.io/too-many-lists/index.html
Linked Listを色々頑張るやつ
366デフォルトの名無しさん
2021/09/11(土) 05:21:08.84ID:w5S7rLqj >>365
それはあまりにも偏った特殊ケースであることと
初心者向けではないということと
その件だとむしろ標準ライブラリとして提供されているリンクリストや双方向キューを覚えた方が実用的かなーhttps://doc.rust-lang.org/std/collections/
それはあまりにも偏った特殊ケースであることと
初心者向けではないということと
その件だとむしろ標準ライブラリとして提供されているリンクリストや双方向キューを覚えた方が実用的かなーhttps://doc.rust-lang.org/std/collections/
367デフォルトの名無しさん
2021/09/11(土) 17:59:37.96ID:iQv7wiiS >>349
なるほど
なるほど
368デフォルトの名無しさん
2021/09/11(土) 21:06:20.65ID:KPnRgCeh Rustは可読性をもう少し良くできなかったのかな
後発なのにJavaより読みにくいってのは問題だろ
後発なのにJavaより読みにくいってのは問題だろ
369デフォルトの名無しさん
2021/09/11(土) 21:16:46.98ID:PRM8i6LA >>368
どのあたりが?
どのあたりが?
370デフォルトの名無しさん
2021/09/11(土) 22:08:56.74ID:UoP9tTBS >>368
どうすれば良くなると思う?
どうすれば良くなると思う?
371デフォルトの名無しさん
2021/09/11(土) 22:10:09.25ID:HMdcT5ar >>370
専用フォントを開発
専用フォントを開発
372デフォルトの名無しさん
2021/09/11(土) 23:22:27.41ID:7r8uHUGr Javaより読みにくいとはさすがに思わんけど、
ジェネリクスが<>囲いなところとか、
そもそも中かっこ+セミコロンってのもどうなんだ、とか
Haskell並にとは言わんがもうちょっとかっこ少なくかけないのか、とか
思うところはいろいろとある
ジェネリクスが<>囲いなところとか、
そもそも中かっこ+セミコロンってのもどうなんだ、とか
Haskell並にとは言わんがもうちょっとかっこ少なくかけないのか、とか
思うところはいろいろとある
373デフォルトの名無しさん
2021/09/11(土) 23:44:46.13ID:zUj2TAiQ >>372
ジェネリクスが<>囲いなところ、ってメジャーなプログラミング言語のほとんどがそうだよね?
ジェネリクスが<>囲いなところ、ってメジャーなプログラミング言語のほとんどがそうだよね?
374デフォルトの名無しさん
2021/09/11(土) 23:48:51.34ID:7r8uHUGr >>373
その通りだけどあんまり筋がよくないことでもちらほらごく一部の界隈で話題になってるような
その通りだけどあんまり筋がよくないことでもちらほらごく一部の界隈で話題になってるような
375デフォルトの名無しさん
2021/09/12(日) 00:05:19.01ID:2NCRgpdh 変にRubyの影響受けてる部分は変えて欲しいなあ
376デフォルトの名無しさん
2021/09/12(日) 00:20:02.96ID:Q5FBinyU377デフォルトの名無しさん
2021/09/12(日) 00:39:47.78ID:qC6wZUfs それはSmalltalkじゃないの?
378デフォルトの名無しさん
2021/09/12(日) 00:49:53.96ID:Q5FBinyU https://doc.rust-lang.org/reference/influences.html
ここによるとクロージャの記法はRuby由来
ここによるとクロージャの記法はRuby由来
379デフォルトの名無しさん
2021/09/12(日) 01:31:54.94ID:q/A4LK0H クロージャの記法は各言語で様々だから大して気にならないけど
こう書きたいのに書けないのが悲しい
fn make_counter_closure(init: i32) -> impl FnMut() -> i32 {
let mut counter = init;
move || counter--
}
この件はRustやRubyだけでなくPythonやScalaやSwiftなどでも同じで
Swiftでは昔は出来たのに後から削除されたようだから最近はそういう傾向なの?
こう書きたいのに書けないのが悲しい
fn make_counter_closure(init: i32) -> impl FnMut() -> i32 {
let mut counter = init;
move || counter--
}
この件はRustやRubyだけでなくPythonやScalaやSwiftなどでも同じで
Swiftでは昔は出来たのに後から削除されたようだから最近はそういう傾向なの?
380デフォルトの名無しさん
2021/09/12(日) 01:35:25.37ID:x/LB5mED >>378
RubyのクロージャがSmalltalk由来だからどうなんだろ
RubyのクロージャがSmalltalk由来だからどうなんだろ
381デフォルトの名無しさん
2021/09/12(日) 07:25:17.64ID:+2JnoCR+382デフォルトの名無しさん
2021/09/12(日) 08:11:23.50ID:s09Gb+ph だッさw
383デフォルトの名無しさん
2021/09/12(日) 10:53:10.17ID:Q5FBinyU >>380
起源をたどればそうかもしれないけどRustが直接的に影響を受けたのはRuby
起源をたどればそうかもしれないけどRustが直接的に影響を受けたのはRuby
384デフォルトの名無しさん
2021/09/12(日) 12:43:40.70ID:7NdeG55C ベストなジェネリクスの書き方ってなんだよ
Scalaみたいなのがいいの?
Scalaみたいなのがいいの?
385デフォルトの名無しさん
2021/09/12(日) 14:11:08.78ID:aiqNVBie Scalaみたいに[]にするのもアリだけど配列がちょっとアレになるからさすがに避けたい気がする
D言語みたいに、例えば定義時には
struct(T) Foo { foo: T }
impl(T) Foo {
fn(T) new(foo: T) { Self { foo } }
}
みたいな感じにして、使用時には
let bar = Foo!i64::new(42);
って感じにするとか・・・?
実際に書いてみるとこれはこれで微妙な気もするが
D言語みたいに、例えば定義時には
struct(T) Foo { foo: T }
impl(T) Foo {
fn(T) new(foo: T) { Self { foo } }
}
みたいな感じにして、使用時には
let bar = Foo!i64::new(42);
って感じにするとか・・・?
実際に書いてみるとこれはこれで微妙な気もするが
386デフォルトの名無しさん
2021/09/12(日) 14:19:29.99ID:UrK9UNLE387デフォルトの名無しさん
2021/09/12(日) 15:54:09.04ID:aiqNVBie move || { counter-=1; counter }では???
388デフォルトの名無しさん
2021/09/12(日) 15:59:39.60ID:lBuMyCBZ >>387
それは後置デクリメントになっていない
それは後置デクリメントになっていない
389デフォルトの名無しさん
2021/09/12(日) 16:29:00.55ID:aiqNVBie 後置であるということをそもそも認識できていなかった、やっべえ
390デフォルトの名無しさん
2021/09/12(日) 16:37:25.63ID:458u6HPV まさにバグの温床となりうることが示されたな
391デフォルトの名無しさん
2021/09/12(日) 16:48:32.00ID:Q5FBinyU392デフォルトの名無しさん
2021/09/12(日) 22:21:50.69ID:s09Gb+ph >>387
見ろ!Rustがゴミのようだ!
見ろ!Rustがゴミのようだ!
393デフォルトの名無しさん
2021/09/13(月) 00:58:36.15ID:1X9d0oCW 型変数を明示しなきゃならないのは汎用プログラミング言語の欠点だよな
394デフォルトの名無しさん
2021/09/13(月) 01:54:16.68ID:+ZZ666OR 何言ってんだこのバカ
395デフォルトの名無しさん
2021/09/13(月) 11:03:41.66ID:HWJQ0k95 let mut counter = init + 1;
move || { counter -= 1; counter }
これが普通だと思うのは俺だけか?
move || { counter -= 1; counter }
これが普通だと思うのは俺だけか?
396デフォルトの名無しさん
2021/09/13(月) 16:07:27.15ID:1X9d0oCW >>395
Rubyだと普通にそういう書き方するから特に違和感はないな
Rubyだと普通にそういう書き方するから特に違和感はないな
397デフォルトの名無しさん
2021/09/14(火) 21:41:07.14ID:qEUG/jlq 配列がusizeだけなのを何とかして欲しい
i32 as usizeとかいちいち面倒
i32 as usizeとかいちいち面倒
398デフォルトの名無しさん
2021/09/14(火) 21:52:21.64ID:yDfeC3hP399デフォルトの名無しさん
2021/09/14(火) 23:13:54.76ID:/xeH/JpQ usizeだとうっかりマイナスにしちゃって死ぬことがある
デバッグビルドならぱにくって気づくけど、
テストすり抜けちゃうとやばい
デバッグビルドならぱにくって気づくけど、
テストすり抜けちゃうとやばい
400デフォルトの名無しさん
2021/09/14(火) 23:25:50.44ID:G8gCvJ5V i32は流石にどうかと思うけど
グリッドの4-隣接とか8-隣接をforで回すときに中心からの差分で表現したくて、
isizeとusizeでガチャガチャ変換したときはちょっとウザいなーとは思った
グリッドの4-隣接とか8-隣接をforで回すときに中心からの差分で表現したくて、
isizeとusizeでガチャガチャ変換したときはちょっとウザいなーとは思った
401デフォルトの名無しさん
2021/09/14(火) 23:35:48.81ID:9cp1Eg6y impl From<u16> for usize はあるのに u32 はないのが面倒
usize のサイズがプラットフォーム依存なのは分かるけど毎回 trt_from().unwap() したくない
usize のサイズがプラットフォーム依存なのは分かるけど毎回 trt_from().unwap() したくない
402デフォルトの名無しさん
2021/09/15(水) 06:35:42.54ID:21ZYJzvz Rustの難しさってある程度マスターしたあとは納得の難しさなんですか?
面倒だなー。でも(メモリ安全のためには)しょうがないか〜、みたいな
面倒だなー。でも(メモリ安全のためには)しょうがないか〜、みたいな
403デフォルトの名無しさん
2021/09/15(水) 07:06:01.76ID:WxLXvftP バカ矯正用補助輪付言語の難しさ
404デフォルトの名無しさん
2021/09/15(水) 07:55:49.68ID:nFHSO/L2 補助輪なし言語でバグなしプログラム作れたらどこに行っても採用されると思うよ
405デフォルトの名無しさん
2021/09/15(水) 08:36:21.78ID:P0HV9c3B >>401
asでいけないっけ
asでいけないっけ
406デフォルトの名無しさん
2021/09/15(水) 09:04:47.19ID:77IP/X5S407デフォルトの名無しさん
2021/09/15(水) 09:15:01.47ID:P0HV9c3B オーバーフローの懸念がある文脈ならtry_fromはしょうがないのでは
usizeがu32以上のプラットフォームだけ想定するならasでいいように思えちゃうんだけど
usizeがu32以上のプラットフォームだけ想定するならasでいいように思えちゃうんだけど
408デフォルトの名無しさん
2021/09/15(水) 09:44:19.90ID:77IP/X5S asを使うとu32から別の型に変更したときに修正漏れのリスクがあるのが気になってしまう
まあfrom相当のユーティリティ関数自分で用意すれば良いか
まあfrom相当のユーティリティ関数自分で用意すれば良いか
409デフォルトの名無しさん
2021/09/15(水) 15:12:38.68ID:6EsPXkcj >>398
じゃあunsafe時には許可して欲しい
じゃあunsafe時には許可して欲しい
410デフォルトの名無しさん
2021/09/15(水) 15:24:13.77ID:a6LjJ0wO 暗黙の型変換が増えるのはやだよ
411デフォルトの名無しさん
2021/09/15(水) 20:24:30.93ID:77IP/X5S 緩く簡単に書きたい人向けの言語じゃないよね全体的に
412デフォルトの名無しさん
2021/09/15(水) 21:01:30.58ID:AIQN4pXi それはそう
緩く簡単に書けるせいで起きていた全てのバグを撲滅したい、的な執念を感じる
緩く簡単に書けるせいで起きていた全てのバグを撲滅したい、的な執念を感じる
413デフォルトの名無しさん
2021/09/15(水) 21:30:37.23ID:rqQTOJGj IntelliJ Rust pluginの新バージョン、関数とかの補完を機械学習でやるんだってさ
すごいね
試してないけど
すごいね
試してないけど
414デフォルトの名無しさん
2021/09/16(木) 00:03:22.08ID:5v2yv6GZ 誰も見ていなければ海や川でも裸で泳ぐCちゃんと
温泉の女湯でも深夜一人で水着で入るRustちゃん
温泉の女湯でも深夜一人で水着で入るRustちゃん
415デフォルトの名無しさん
2021/09/16(木) 00:56:52.16ID:sz29YBQA エラーハンドリング可能な形ですっきりしたルールを定義できるならやればいいんだけど
現実にそういう上手い方法がないなら煩雑でも変換の手順を書くしかない。
現実にそういう上手い方法がないなら煩雑でも変換の手順を書くしかない。
416デフォルトの名無しさん
2021/09/16(木) 01:12:36.12ID:Efcezeu+ 低レイヤーいじる言語のエラー処理内容の粒度はそれこそプログラムごとに違うとしか言いようがない。
だから仕方ない。
だから仕方ない。
417デフォルトの名無しさん
2021/09/16(木) 05:10:39.16ID:7K5k42SQ418デフォルトの名無しさん
2021/09/16(木) 05:50:12.68ID:P9SoBPvJ おっきしてきた
419デフォルトの名無しさん
2021/09/16(木) 06:27:10.25ID:s4mLRLKS 椎ちゃんの方逝くわw
420デフォルトの名無しさん
2021/09/16(木) 18:55:26.69ID:cHl8Y0Er as usize祭り絶賛開催中
unsafe fn calc(a_index: isize, b_index: isize) -> isize {
if a_index == a.len() as isize { return 0; };
let mut res: isize = 0;
for i in b_index..b.len() as isize {
if a[a_index as usize] == b[b_index as usize] {
res = res.max(calc(a_index + 1, b_index + 1) + 1);
}
}
res
}
unsafe fn calc(a_index: isize, b_index: isize) -> isize {
if a_index == a.len() as isize { return 0; };
let mut res: isize = 0;
for i in b_index..b.len() as isize {
if a[a_index as usize] == b[b_index as usize] {
res = res.max(calc(a_index + 1, b_index + 1) + 1);
}
}
res
}
421デフォルトの名無しさん
2021/09/16(木) 19:34:21.47ID:vxj0ze2Y422デフォルトの名無しさん
2021/09/16(木) 19:36:15.88ID:cHl8Y0Er unsafeだしな
そして、その指摘にas usizeを擁護(容認)する意見は皆無だっていう
そして、その指摘にas usizeを擁護(容認)する意見は皆無だっていう
423デフォルトの名無しさん
2021/09/16(木) 19:38:22.07ID:cHl8Y0Er あと祭り発生中の実況だったので稼働するコードではなく、
if a[a_index as usize] == b[i as usize] {
}
と修正した
if a[a_index as usize] == b[i as usize] {
}
と修正した
424デフォルトの名無しさん
2021/09/16(木) 20:03:32.03ID:Y8GNLhYC なんでunsafeなのかもわからないしなんでusizeじゃなくてisizeを受け取るのかもわからん
425デフォルトの名無しさん
2021/09/16(木) 20:06:54.23ID:Y8GNLhYC ああ、aとbグローバル変数なんかこれ?
426デフォルトの名無しさん
2021/09/16(木) 20:47:15.02ID:cHl8Y0Er 引数がマイナスになることもあるので条件判断の必要からisizeなんだよね
もしusizeを引数にするとしても、引数に渡すところでisize as usizeになるので、やっぱりusize祭りが大発生
お祭りワッショイワッショイ
もしusizeを引数にするとしても、引数に渡すところでisize as usizeになるので、やっぱりusize祭りが大発生
お祭りワッショイワッショイ
427デフォルトの名無しさん
2021/09/16(木) 21:30:12.52ID:+FxVjnil 引数がマイナスになるならチェックしないと範囲外アクセスするだろ馬鹿か?
428デフォルトの名無しさん
2021/09/16(木) 22:25:53.04ID:XSar1IoX 今どきIndex使って回すとか化石脳かよ
429デフォルトの名無しさん
2021/09/16(木) 22:48:14.07ID:VRkuCUuZ ボロクソワロタ
430デフォルトの名無しさん
2021/09/16(木) 23:11:45.54ID:C/6oeybD431デフォルトの名無しさん
2021/09/17(金) 01:14:24.53ID:+px3FZ+H グローバル変数小文字にしたら警告出なかったっけ
432デフォルトの名無しさん
2021/09/17(金) 03:56:57.86ID:L8yNiQtv そもそもusizeで受け取って呼び出し側でケアすべきやろ
433デフォルトの名無しさん
2021/09/17(金) 13:27:45.55ID:5NPaLNkl >>412
経験的に、縛れば縛るほど最終的にはラクできるようなのを皆知ってると思う
ラクに書けるような言語は一見いいのだが
人間が生まれ持って自堕落であるのを伴って
最終的には苦しみをもたらすことになるコードを書いてしまう
経験的に、縛れば縛るほど最終的にはラクできるようなのを皆知ってると思う
ラクに書けるような言語は一見いいのだが
人間が生まれ持って自堕落であるのを伴って
最終的には苦しみをもたらすことになるコードを書いてしまう
434デフォルトの名無しさん
2021/09/17(金) 15:13:45.88ID:dr0oo8mV■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★2 [♪♪♪★]
- 【トレンド】高市首相「マウント取れる服」投稿にツッコミ続出「他国に対する敬意がない」「外交相手に失礼」 [1ゲットロボ★]
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★8 [♪♪♪★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 [ぐれ★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 【立憲民主党】「質問レベルの低さが立憲の存立危機事態」台湾有事発言を引き出した立憲“執拗追及”が波紋… ★2 [尺アジ★]
- 🏡😡
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ161
- 【悲報】フィギュアスケート人気、めちゃくちゃ落ちる💥💥wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [573041775]
- 中国「国連さん聞いて!日本が反省しないの!日本は武力介入しようとしてるよ!」
- 風俗でスレンダー美人を見つける方法
- 【画像大量】お前ら、若者を気取っているなら、「このリスト」くらい、全て、マスターをしてるよな?
