公式
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
311デフォルトの名無しさん
2021/09/05(日) 20:31:50.21ID:Mq9n6pyZ grepの書き換えとか入門用テキストあるあるだしな俺もそれかと思ってたw
インタープリターみたいの作りたいなら単純に考えて$(.+)みたいの発見し次第rustで書かれたプログラムに書き換え
この際$(.+)の.+の部分にもrust書き換えプログラムを同様に適用のrecursiveな奴考えるな
match等でregex構文が扱いやすい分rust native interpreterみたいの造りやすそう
あとそうゆうのredosだかなんだかのrust os projectみたいのあるから見たら面白いんじゃね(´・ω・`)
インタープリターみたいの作りたいなら単純に考えて$(.+)みたいの発見し次第rustで書かれたプログラムに書き換え
この際$(.+)の.+の部分にもrust書き換えプログラムを同様に適用のrecursiveな奴考えるな
match等でregex構文が扱いやすい分rust native interpreterみたいの造りやすそう
あとそうゆうのredosだかなんだかのrust os projectみたいのあるから見たら面白いんじゃね(´・ω・`)
312デフォルトの名無しさん
2021/09/07(火) 12:42:27.81ID:O1QkM6d3 nullの可能性がある複数の参照を作りたい場合って
OptionとかRcを組み合わせるの?
縦によも横にもコードが長くなりそう
OptionとかRcを組み合わせるの?
縦によも横にもコードが長くなりそう
313デフォルトの名無しさん
2021/09/07(火) 13:22:01.93ID:J2y4//gF Option<&T> や &Option<T>でも良いかも知れないけど状況次第
可変参照にしたいなら Rc<RefCell<Option<T>>> とかになるかも
可変参照にしたいなら Rc<RefCell<Option<T>>> とかになるかも
314デフォルトの名無しさん
2021/09/07(火) 14:39:19.62ID:vfOWvkqv Rustの文化詳しくないけど、null objectは使わないの?
せっかく静的安全性にこだわっているのに、型無しのnullを使うのはこだわりが足りない気がするなぁ。
せっかく静的安全性にこだわっているのに、型無しのnullを使うのはこだわりが足りない気がするなぁ。
315デフォルトの名無しさん
2021/09/07(火) 15:00:30.72ID:gb4OeP+0 OptionがあるのにNullObjectいらなくないです?
316デフォルトの名無しさん
2021/09/07(火) 15:16:47.38ID:yn0D/zff317デフォルトの名無しさん
2021/09/07(火) 15:20:59.00ID:oZHnA/lF NullObjectは時代遅れ過ぎる
318312
2021/09/07(火) 15:36:48.61ID:O1QkM6d3319デフォルトの名無しさん
2021/09/07(火) 15:42:12.42ID:gb4OeP+0 参照をRcするような場面てあんまりないような気がする
ところでRc<RefCell<Option<T>>>は、
参照じゃなくてヒープにある(かもしれない)Tの共有になりませんか
ところでRc<RefCell<Option<T>>>は、
参照じゃなくてヒープにある(かもしれない)Tの共有になりませんか
320デフォルトの名無しさん
2021/09/07(火) 15:58:38.34ID:X4ha4H+D321デフォルトの名無しさん
2021/09/07(火) 18:22:59.95ID:J2y4//gF322デフォルトの名無しさん
2021/09/07(火) 19:09:15.95ID:/9ekKyA5323デフォルトの名無しさん
2021/09/07(火) 20:06:06.42ID:Z/GuZfd2324デフォルトの名無しさん
2021/09/07(火) 21:28:45.74ID:GNL8Ud6q325デフォルトの名無しさん
2021/09/07(火) 22:29:28.46ID:KSe0arFM 本来はOption/Result/(Either)はRust言語的な仕組みでは無く、ライブラリの作法に過ぎないが、ランタイムが
無いはずなのに、Resultなどで宣言しているところで原則として捕捉しないpanicがあるのは納得できない人は
結構いると思う。言語の構文でmatchや?など、まさにそれのサポート構文があるのに、unwrapしたらpanicで
この話は嫌がる人が結構いるけど、OptionもResultもPanicも取っ払った最小の標準ライブラリが欲しい
無いはずなのに、Resultなどで宣言しているところで原則として捕捉しないpanicがあるのは納得できない人は
結構いると思う。言語の構文でmatchや?など、まさにそれのサポート構文があるのに、unwrapしたらpanicで
この話は嫌がる人が結構いるけど、OptionもResultもPanicも取っ払った最小の標準ライブラリが欲しい
326デフォルトの名無しさん
2021/09/07(火) 22:45:10.91ID:rBwLSogt >>325
何が言いたいのか分からん
何が言いたいのか分からん
327デフォルトの名無しさん
2021/09/07(火) 23:03:38.48ID:2A/XDTjQ >>325
そこは使い分け。
エラーな時にそのままエラー吐かせても構わない場合は、main()をResult型にしてしまうし、
きちんとエラー処理する必要あるものな場合は、少なくともmain()やそれより下でmatchでResultを必ず受け止める。
そこは使い分け。
エラーな時にそのままエラー吐かせても構わない場合は、main()をResult型にしてしまうし、
きちんとエラー処理する必要あるものな場合は、少なくともmain()やそれより下でmatchでResultを必ず受け止める。
328デフォルトの名無しさん
2021/09/07(火) 23:11:59.18ID:oZHnA/lF329デフォルトの名無しさん
2021/09/07(火) 23:18:49.53ID:2A/XDTjQ あと後者の場合、unwrap()も基本的には使わない。
例外的に使うのはフィルタし終えて必ずSome(T)となっているものを剥がす時だけ。
つまりpanicはさせないので、その>>325の懸念事項は発生しない。
例外的に使うのはフィルタし終えて必ずSome(T)となっているものを剥がす時だけ。
つまりpanicはさせないので、その>>325の懸念事項は発生しない。
330デフォルトの名無しさん
2021/09/08(水) 07:19:42.43ID:yXT40j/x 素人です、質問させてください
Rustでスマホアプリやwebアプリは作れますか?
作れるとしたら
java/kotlinやswiftやjavascriptより作りやすいですか?
アプリ制作でこれらの言語よりRustは優れてますか?
Rustでスマホアプリやwebアプリは作れますか?
作れるとしたら
java/kotlinやswiftやjavascriptより作りやすいですか?
アプリ制作でこれらの言語よりRustは優れてますか?
331デフォルトの名無しさん
2021/09/08(水) 07:34:28.50ID:bql1CtjZ Rust+JavaScriptでウェブアプリとそのためのサーバーサイドは作れる
ウェブブラウザ上ではJavaScriptが必須なのでRustだけにはできない
ただしウェブブラウザ上ではJavaScriptに加えてWebAssembly(Wasm)も動いてこれはRustで書いたプログラムが動く
なのでJavaScript部分を最小限にしてRustで書いたWasmがメインというケースもないわけではない
サーバーサイドはRustだけで全て構築できる
ウェブブラウザ上ではJavaScriptが必須なのでRustだけにはできない
ただしウェブブラウザ上ではJavaScriptに加えてWebAssembly(Wasm)も動いてこれはRustで書いたプログラムが動く
なのでJavaScript部分を最小限にしてRustで書いたWasmがメインというケースもないわけではない
サーバーサイドはRustだけで全て構築できる
332デフォルトの名無しさん
2021/09/08(水) 07:48:35.45ID:yXT40j/x ありがとうございました
スマホアプリを作るならKotlinやswiftってことなんですね
大変に参考になりました。ありがとうございました。
スマホアプリを作るならKotlinやswiftってことなんですね
大変に参考になりました。ありがとうございました。
333デフォルトの名無しさん
2021/09/08(水) 08:09:19.60ID:nCYYHiA4 オマケみたいなもんやな
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 緩く簡単に書きたい人向けの言語じゃないよね全体的に
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【子ども・子育て支援金】来年4月から徴収、月収50万円なら月600円程度…健保連試算 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 「加熱式たばこ」の受動喫煙、「紙巻き」同様の対策強化を検討へ…厚労省の専門委が議論スタート [蚤の市★]
- ゴルフ練習場の倒産 過去最多「屋外打ちっぱなし」と「インドア」の熾烈な競争 [蚤の市★]
- 日本の旅客機、定時に飛べず 羽田空港発着の半数が15分超遅延 [蚤の市★]
- 【札幌】「アニメのキャラのまねをするためだった」上半身はダウンジャケット・下半身はスッポンポン…43歳無職の男を逮捕 [nita★]
- ウヨクは軍備増強すれば抑止力になるって言うけどさ軍備増強しまくった中国に侵略します宣言した日本見れば意味ないの分かるよね [817148728]
- 【速報】高市、今度はロシアに喧嘩を売る [329271814]
- 竹中平蔵氏、万博を批判していた人たちにチクリ「反省の弁聞きたい」 [686538148]
- 国宝みたんだけど
- キミプリ→ゼッツ→ゴジュウ→二度寝
- 【速報】高市早苗、G20サミット”社長出勤” [614650719]
