Mozilla発のRust言語のスレ
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
前スレ
Rust part8
https://mevius.5ch.net/test/read.cgi/tech/1579834072/
Rust part9
■ このスレッドは過去ログ倉庫に格納されています
2020/08/23(日) 01:07:35.52ID:MgEpWwVh
295デフォルトの名無しさん
2020/11/06(金) 11:22:47.79ID:JyOrEzG9 それ、「俺様には理解できない」にderefされてます
296デフォルトの名無しさん
2020/11/06(金) 20:08:48.42ID:g6FZ2Lxp >>291
esolangはさておきAPLとかは難読言語といっても良いかも
あとは暗黙の○○が多い言語や記号が多い言語は初心者にとっては難読だと思うけど
Rustはこれらには当てはまらないと思うけど、どういう点で難読と思ったのか教えて欲しい
esolangはさておきAPLとかは難読言語といっても良いかも
あとは暗黙の○○が多い言語や記号が多い言語は初心者にとっては難読だと思うけど
Rustはこれらには当てはまらないと思うけど、どういう点で難読と思ったのか教えて欲しい
297デフォルトの名無しさん
2020/11/11(水) 20:37:16.07ID:ZuM/CkEs >>291
お前は5年後もC++使ってろよ
お前は5年後もC++使ってろよ
298デフォルトの名無しさん
2020/11/12(木) 10:54:00.16ID:uK53dAw4 fn foo(bar: impl Buzz)
というシグネチャは、
fn foo<T: Buzz>(bar: T)
の構文糖なんですよね?
では、
fn foo() -> impl Buzz
を、
fn foo<T: Buzz>() -> T
と書けないのはなぜなんでしょう?
というシグネチャは、
fn foo<T: Buzz>(bar: T)
の構文糖なんですよね?
では、
fn foo() -> impl Buzz
を、
fn foo<T: Buzz>() -> T
と書けないのはなぜなんでしょう?
299デフォルトの名無しさん
2020/11/12(木) 11:47:01.17ID:tcFc7SO9300デフォルトの名無しさん
2020/11/12(木) 12:00:24.36ID:tcFc7SO9301デフォルトの名無しさん
2020/11/12(木) 13:24:24.86ID:uK53dAw4 >>299
Rust bookにはsyntax sugarと書かれていたのですが…
https://doc.rust-lang.org/book/ch10-02-traits.html#trait-bound-syntax
> The impl Trait syntax works for straightforward cases but is actually syntax sugar for a longer form, which is called a trait bound; it looks like this:
>>300
ありがとうございます。
Rust bookはあんまり信用できないのかな…
Rust bookにはsyntax sugarと書かれていたのですが…
https://doc.rust-lang.org/book/ch10-02-traits.html#trait-bound-syntax
> The impl Trait syntax works for straightforward cases but is actually syntax sugar for a longer form, which is called a trait bound; it looks like this:
>>300
ありがとうございます。
Rust bookはあんまり信用できないのかな…
302デフォルトの名無しさん
2020/11/12(木) 16:23:24.97ID:tcFc7SO9303デフォルトの名無しさん
2020/11/12(木) 18:49:52.91ID:C+/hhwIt 記号が多い言語は英語の苦手な日本人には有利だ
英文に近づけようとする言語は不利だ
英文に近づけようとする言語は不利だ
304デフォルトの名無しさん
2020/11/13(金) 19:01:00.42ID:nD6TGu67 そんなあなたにPerlがあるよ
305デフォルトの名無しさん
2020/11/13(金) 23:39:03.73ID:RhbFV+AU APLもおるでよ
306デフォルトの名無しさん
2020/11/14(土) 06:16:49.16ID:6dxHy4Fn python最強じゃん
307デフォルトの名無しさん
2020/11/14(土) 09:55:40.26ID:B7e1nuZg LISPかな。まあ記号と言っても括弧ばっかりだが。
308デフォルトの名無しさん
2020/11/14(土) 10:07:50.72ID:DnZAmAgg 「Lots of Isolated Silly Parentheses」の略だからな。
309デフォルトの名無しさん
2020/11/14(土) 10:52:27.43ID:wQlu6eHI310デフォルトの名無しさん
2020/11/14(土) 12:17:47.68ID:dRjRf4O1311デフォルトの名無しさん
2020/11/14(土) 13:14:02.66ID:DnZAmAgg The name "turbofish" was made up by reddit user deadstone in 2015, and has since caught on in the Rust community, being used even in the official documentation.
「turbofish」という名前は、2015年にredditユーザーのdeadstone氏によって作成され、それ以来Rustコミュニティで定着し、公式ドキュメントでも使用されています。
「turbofish」という名前は、2015年にredditユーザーのdeadstone氏によって作成され、それ以来Rustコミュニティで定着し、公式ドキュメントでも使用されています。
312デフォルトの名無しさん
2020/11/15(日) 04:06:11.96ID:H90rIdiK function<>()の方が良かったけどね。パーサーの複雑性があって解決されてなく、もうここまで広まったしいいやってなってるけど
313デフォルトの名無しさん
2020/11/15(日) 23:56:20.08ID:HUIHtxgp >>301,302
型制約と存在型じゃ概念が違うから構文糖は語弊がある。
生成するコードはどちらもモノモーフィックな関数吐くけど存在型は第一引数の違いだけでコンパイル時に
ディスパッチ先が一意に決まらないケースが有るからマルチメソッドを直接サポートしない弊害があるかな。
型制約と存在型じゃ概念が違うから構文糖は語弊がある。
生成するコードはどちらもモノモーフィックな関数吐くけど存在型は第一引数の違いだけでコンパイル時に
ディスパッチ先が一意に決まらないケースが有るからマルチメソッドを直接サポートしない弊害があるかな。
314デフォルトの名無しさん
2020/11/20(金) 21:14:37.50ID:YhokOqrJ Rust 1.48リリース
315デフォルトの名無しさん
2020/11/20(金) 21:23:36.45ID:g8U1YOSi Internet Archive、Flashコンテンツをアーカイブ プラグインなしで21年以降も閲覧可能に
https://www.itmedia.co.jp/news/articles/2011/20/news143.html
プログラミング言語Rustで作られたFlashのエミュレータ「Ruffle」を使うことで、Flashプラグインをインストールしなくても、WebAssembyが動作するWebブラウザさえあれば動作するとしている。
https://www.itmedia.co.jp/news/articles/2011/20/news143.html
プログラミング言語Rustで作られたFlashのエミュレータ「Ruffle」を使うことで、Flashプラグインをインストールしなくても、WebAssembyが動作するWebブラウザさえあれば動作するとしている。
316デフォルトの名無しさん
2020/11/20(金) 23:10:09.72ID:znicv9zG すげえなww
でも先人の苦労の作品が残ってよかった
でも先人の苦労の作品が残ってよかった
317デフォルトの名無しさん
2020/11/22(日) 16:39:30.67ID:ujQ9d+0r Rust bookのDropトレイト解説のページ ( https://doc.rust-jp.rs/book-ja/ch15-03-drop.html ) で質問です。
以下のようなコードなのですが、
struct CustomSmartPointer {
data: String,
}
impl Drop for CustomSmartPointer {
fn drop(&mut self) {
println!("Dropping CustomSmartPointer with data `{}`!", self.data);
}
}
fn main() {
let c = CustomSmartPointer { data: String::from("my stuff") };
println!("CustomSmartPointers created.");
}
これ、dropの実装部分にprintln!しか書かれてませんが&self.dataの処理は書かなくてよいのでしょうか?
例えば、println!の下に、
drop(&self.data);
のように。
どちらかがコンパイルエラーになるならいいのですが、書いても書かなくてもどちらでも問題なくコンパイルが通ってしまい、困惑しています。
以下のようなコードなのですが、
struct CustomSmartPointer {
data: String,
}
impl Drop for CustomSmartPointer {
fn drop(&mut self) {
println!("Dropping CustomSmartPointer with data `{}`!", self.data);
}
}
fn main() {
let c = CustomSmartPointer { data: String::from("my stuff") };
println!("CustomSmartPointers created.");
}
これ、dropの実装部分にprintln!しか書かれてませんが&self.dataの処理は書かなくてよいのでしょうか?
例えば、println!の下に、
drop(&self.data);
のように。
どちらかがコンパイルエラーになるならいいのですが、書いても書かなくてもどちらでも問題なくコンパイルが通ってしまい、困惑しています。
318デフォルトの名無しさん
2020/11/22(日) 16:58:52.26ID:JIsF8Dpm >>317
もう少し細かい話はこの辺に書いてあるよ。
https://doc.rust-lang.org/std/ops/trait.Drop.html
簡単に言えばそのdataは勝手に解放されるからdropは不要。
解放以外で何か処理したいなら書けばいい。
drop(&self.data)としたとしても、それは参照を作ってその参照を即座に破棄してるだけなので特に意味はない。
本当にdataを解放したいならdrop(self.data)になるけどこれはコンパイルエラーになるはず。
もう少し細かい話はこの辺に書いてあるよ。
https://doc.rust-lang.org/std/ops/trait.Drop.html
簡単に言えばそのdataは勝手に解放されるからdropは不要。
解放以外で何か処理したいなら書けばいい。
drop(&self.data)としたとしても、それは参照を作ってその参照を即座に破棄してるだけなので特に意味はない。
本当にdataを解放したいならdrop(self.data)になるけどこれはコンパイルエラーになるはず。
319デフォルトの名無しさん
2020/11/22(日) 17:05:23.09ID:JIsF8Dpm あ、最後の行のは多分deref抜けてるな。
いずれにしてもdropするなら所有権を取る必要があるけど、
&mut selfからdataの所有権を取る方法はないので
正しくdropするコードを書けばエラーになるはず。
いずれにしてもdropするなら所有権を取る必要があるけど、
&mut selfからdataの所有権を取る方法はないので
正しくdropするコードを書けばエラーになるはず。
320デフォルトの名無しさん
2020/11/22(日) 17:16:38.55ID:ujQ9d+0r >>318-319
おお、
drop(self.data);
でも
drop((*self).data);
でも同じ、
cannot move out of `self.data` which is behind a mutable reference
エラーでました!
スッキリしましたありがとうございます。
std::mem::dropの実装って
pub fn drop<T>(_x: T) { }
だったんですねぇ…
おお、
drop(self.data);
でも
drop((*self).data);
でも同じ、
cannot move out of `self.data` which is behind a mutable reference
エラーでました!
スッキリしましたありがとうございます。
std::mem::dropの実装って
pub fn drop<T>(_x: T) { }
だったんですねぇ…
321デフォルトの名無しさん
2020/11/24(火) 00:31:06.85ID:EBaS3Lgi Rust bookのRefCell解説のページ ( https://doc.rust-jp.rs/book-ja/ch15-05-interior-mutability.html ) で質問です。
以下のようなコードなのですが、
pub trait Messenger {
fn send(&self, msg: &str);
}
pub struct LimitTracker<'a, T: 'a + Messenger> {
messenger: &'a T,
value: usize,
max: usize,
}
impl<'a, T> LimitTracker<'a, T>
where T: Messenger {
pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
LimitTracker {
messenger,
value: 0,
max,
}
}
// 以下略
pub struct LimitTracker<'a, T: 'a + Messenger> {
の行でトレイト境界に
'a + Messenger
を指定しているようなのですが、
このような書き方今までに出てこなかったので試しに
pub struct LimitTracker<'a, T: Messenger> {
と書き替えてみたところ、警告もなしにコンパイルできてしまいました…
これ、何の意味があるんでしょう?
以下のようなコードなのですが、
pub trait Messenger {
fn send(&self, msg: &str);
}
pub struct LimitTracker<'a, T: 'a + Messenger> {
messenger: &'a T,
value: usize,
max: usize,
}
impl<'a, T> LimitTracker<'a, T>
where T: Messenger {
pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
LimitTracker {
messenger,
value: 0,
max,
}
}
// 以下略
pub struct LimitTracker<'a, T: 'a + Messenger> {
の行でトレイト境界に
'a + Messenger
を指定しているようなのですが、
このような書き方今までに出てこなかったので試しに
pub struct LimitTracker<'a, T: Messenger> {
と書き替えてみたところ、警告もなしにコンパイルできてしまいました…
これ、何の意味があるんでしょう?
322デフォルトの名無しさん
2020/11/24(火) 01:32:20.18ID:mGIqKDo2323デフォルトの名無しさん
2020/11/24(火) 14:58:09.97ID:p7TzmKlx >>322
ズバリのページありがとうございます!
ズバリのページありがとうございます!
324デフォルトの名無しさん
2020/11/24(火) 21:59:32.67ID:wabd38wc どういたしまして
325デフォルトの名無しさん
2020/11/25(水) 14:15:02.94ID:3ZJ1Ge7R &mut TがCopyとCloneをimplしていないのは理解しているんだけど
let a: &mut i32 = &mut 0;
let b = a;
dbg!(a);
これがaがムーブされてエラーになって
let a: &mut i32 = &mut 0;
let b: &mut i32 = a;
dbg!(a);
これがエラーにならないのはナンデ?
let a: &mut i32 = &mut 0;
let b = a;
dbg!(a);
これがaがムーブされてエラーになって
let a: &mut i32 = &mut 0;
let b: &mut i32 = a;
dbg!(a);
これがエラーにならないのはナンデ?
326デフォルトの名無しさん
2020/11/25(水) 14:51:10.49ID:wYoO0jiQ >>325
それが借用でしょ。
それが借用でしょ。
327デフォルトの名無しさん
2020/11/25(水) 14:59:59.26ID:wYoO0jiQ >>325
b が使われないことはわかってるので無かったことになる。
b が使われるなら借用中ということでエラーになるよ。
↓ これはエラーになる。
let a: &mut i32 = &mut 0;
let b: &mut i32 = a;
dbg!(a);
dbg!(b);
b が使われないことはわかってるので無かったことになる。
b が使われるなら借用中ということでエラーになるよ。
↓ これはエラーになる。
let a: &mut i32 = &mut 0;
let b: &mut i32 = a;
dbg!(a);
dbg!(b);
328デフォルトの名無しさん
2020/11/25(水) 15:24:43.58ID:s/U6WABr これは僕もエラーにしてほしいなあ
何か深い理由があるんだろうけど…
何か深い理由があるんだろうけど…
329デフォルトの名無しさん
2020/11/25(水) 22:28:12.61ID:70iTIiqa let a: &mut i32 = &mut 0;
let b: &mut i32 = a;
dbg!(b);
dbg!(a);
これをOKにしたいんだから3行目が無くてもOKなのは必然
let b: &mut i32 = a;
dbg!(b);
dbg!(a);
これをOKにしたいんだから3行目が無くてもOKなのは必然
330デフォルトの名無しさん
2020/11/25(水) 22:32:25.21ID:g8/riQpL エラーにしたい理由がよく分からんな。
実際bを使ってないんならエラーになる意味がないし、
typoでbを使い損ねてるならbが未使用のwarningは出るから気付けるし。
実際bを使ってないんならエラーになる意味がないし、
typoでbを使い損ねてるならbが未使用のwarningは出るから気付けるし。
331デフォルトの名無しさん
2020/11/26(木) 02:46:48.20ID:Hqg/GFYt332デフォルトの名無しさん
2020/11/26(木) 10:22:00.12ID:LVnm3iYq fn noop<T>(t: T) -> T {
t
}
let a: &mut i32 = &mut 0;
let b = noop(a);
dbg!(b);
dbg!(a);
これはエラーになる
let a: &mut i32 = &mut 0;
let b: &mut i32 = noop(a);
dbg!(b);
dbg!(a);
エラーにならない
ナンデ?
t
}
let a: &mut i32 = &mut 0;
let b = noop(a);
dbg!(b);
dbg!(a);
これはエラーになる
let a: &mut i32 = &mut 0;
let b: &mut i32 = noop(a);
dbg!(b);
dbg!(a);
エラーにならない
ナンデ?
333デフォルトの名無しさん
2020/11/26(木) 14:53:19.68ID:LVnm3iYq https://users.rust-lang.org/t/questions-about-mut-t-and-move-semantics-mut-t-is-move-only/37484/13
ナンデかわかりました
implicit reborrowというものらしいです
ナンデかわかりました
implicit reborrowというものらしいです
334デフォルトの名無しさん
2020/11/26(木) 16:45:55.16ID:02Rh/1GY 俺も↓これみてやっと分かった
https://github.com/rust-lang/rust/issues/35919#issuecomment-304130115
https://stackoverflow.com/a/58587870
関数のシグニチャの場合を含めて型が明示されてれば
&mut T -> & mut Tの場合でもimplicit reborrowが発生してmoveじゃなくなる
(auto-reborrowやreborrow coercionと呼んでる人も)
今まで気にしたことなかったわ
https://github.com/rust-lang/rust/issues/35919#issuecomment-304130115
https://stackoverflow.com/a/58587870
関数のシグニチャの場合を含めて型が明示されてれば
&mut T -> & mut Tの場合でもimplicit reborrowが発生してmoveじゃなくなる
(auto-reborrowやreborrow coercionと呼んでる人も)
今まで気にしたことなかったわ
335デフォルトの名無しさん
2020/11/26(木) 17:14:06.85ID:O9/RzT4k なんでこんなの入れたんだろう…
336デフォルトの名無しさん
2020/11/26(木) 18:11:09.60ID:02Rh/1GY Type Coercionの一貫
ここに少し理由が書いてある
https://doc.rust-lang.org/nightly/nightly-rustc/rustc_typeck/check/coercion/index.html
↓これも同じ理由でエラーにならない
let a: &mut i32 = &mut 0;
let b = a as &mut i32;
dbg!(b);
dbg!(a);
ここに少し理由が書いてある
https://doc.rust-lang.org/nightly/nightly-rustc/rustc_typeck/check/coercion/index.html
↓これも同じ理由でエラーにならない
let a: &mut i32 = &mut 0;
let b = a as &mut i32;
dbg!(b);
dbg!(a);
337デフォルトの名無しさん
2020/11/26(木) 23:01:58.61ID:SYxS73xz 最後にアクセスしたところで借用が終了すると思えば特に違和感はない
338デフォルトの名無しさん
2020/11/26(木) 23:48:56.99ID:O9/RzT4k 変数宣言時に決まらず、今後スコープが終わるまでに使われるか使われないかで変わってしまうのか
339デフォルトの名無しさん
2020/12/04(金) 00:56:22.75ID:g/NRvcV0 >>334
>&mut T -> & mut Tの場合でもimplicit reborrowが発生してmoveじゃなくなる
stackoverflowの方でも説明されてるけど、&mut T -> & mut Tじゃなくて&'a mut T -> &'b mut Tだな。
>&mut T -> & mut Tの場合でもimplicit reborrowが発生してmoveじゃなくなる
stackoverflowの方でも説明されてるけど、&mut T -> & mut Tじゃなくて&'a mut T -> &'b mut Tだな。
340デフォルトの名無しさん
2020/12/04(金) 03:01:18.62ID:2+VKdPy1 implicitにする必要あった?
便利さより明示・明確で行って欲しい
便利さより明示・明確で行って欲しい
341デフォルトの名無しさん
2020/12/04(金) 11:37:04.89ID:OAjYDL2x >>334のstackoverflowのコメント見れば必要だとしか
間違えたら単にコンパイルエラーになるわけで
間違えたら単にコンパイルエラーになるわけで
342デフォルトの名無しさん
2020/12/06(日) 23:56:40.78ID:0jqklMIU imple Trait for Something のTraitとSomething、逆の方が良かったなぁ
トレイトはまとめてモジュールにされることあるからimportしてからstructの直下でimplするからimpl struct with traitのほうが可読性高い、git的にも綺麗な差分の表示にもなるし
これなんか明確な理由とかないのかな?
トレイトはまとめてモジュールにされることあるからimportしてからstructの直下でimplするからimpl struct with traitのほうが可読性高い、git的にも綺麗な差分の表示にもなるし
これなんか明確な理由とかないのかな?
343デフォルトの名無しさん
2020/12/07(月) 00:00:26.20ID:owPfoMMb ないでしょうね
どっちにでも設計できたでしょうし
どっちにでも設計できたでしょうし
344デフォルトの名無しさん
2020/12/07(月) 00:39:06.96ID:O/wMvD4W 昔は impl Struct :Trait {} だった気がする
: だとどっちがどっちかわかりにくいみたいな議論はあったような
: だとどっちがどっちかわかりにくいみたいな議論はあったような
345デフォルトの名無しさん
2020/12/07(月) 00:39:59.19ID:O/wMvD4W あと impl Struct with Trait だと Struct "を" 実装すると読めるのがイマイチな気はする
346デフォルトの名無しさん
2020/12/07(月) 01:03:15.94ID:BaEMz00S impl Struct with Traitだと複数書くと同一Structを何回もimplすることになってちょっと変かも
このあたりはネイティブだと「てにをは」がおかしい感じに見えるのかもね
このあたりはネイティブだと「てにをは」がおかしい感じに見えるのかもね
347デフォルトの名無しさん
2020/12/08(火) 21:05:17.59ID:4EYeOh4b lifetime関係で文句言われまくって暗黙にした部分が多いんだろう。。そんな輩にrust使わせる必要なんてないのに。
348デフォルトの名無しさん
2020/12/09(水) 00:30:14.37ID:jODQKuwy 暗黙はイヤだあぁ〜っ!!
349デフォルトの名無しさん
2020/12/09(水) 10:40:53.58ID:LSaC/unp 適当なライフタイムパラメータをつけるとコンパイルできることもあると学んだ
350デフォルトの名無しさん
2020/12/09(水) 13:24:40.25ID:WuZTb4kZ qiitaに久々に良記事あったわ
351デフォルトの名無しさん
2020/12/09(水) 13:27:46.69ID:jODQKuwy >>350
ヒントくれ
ヒントくれ
352デフォルトの名無しさん
2020/12/10(木) 11:18:18.25ID:U7s1vwLT353デフォルトの名無しさん
2020/12/10(木) 11:43:02.02ID:U7s1vwLT354デフォルトの名無しさん
2020/12/10(木) 11:57:47.75ID:U7s1vwLT 正規表現やLISPなんかも可読性が低い。
355デフォルトの名無しさん
2020/12/10(木) 12:16:53.52ID:hyB2wVsL LISPが可読性低いはモグリ
356デフォルトの名無しさん
2020/12/10(木) 12:25:40.73ID:YXjbRyJb クポー!
357デフォルトの名無しさん
2020/12/10(木) 12:41:56.12ID:oYgS32h8 >>352
具体的な記述例上げてくれないと何の説得力も無いぞ
具体的な記述例上げてくれないと何の説得力も無いぞ
358デフォルトの名無しさん
2020/12/10(木) 15:03:07.81ID:YBB2SlAl いつものヤバイ人だってすぐわかるだろ
荒らしの相手をするのも荒らしだぞ
荒らしの相手をするのも荒らしだぞ
359デフォルトの名無しさん
2020/12/11(金) 11:56:33.87ID:/1hdqM5e Cを日常的に使っていた人がRustに移行しようとするとやりたいことが出来なくて
馬鹿馬鹿しくなる。
数学的には完全に安全な書き方なのにRustには怒られる。
馬鹿馬鹿しくなる。
数学的には完全に安全な書き方なのにRustには怒られる。
360デフォルトの名無しさん
2020/12/11(金) 12:12:02.16ID:NpU6prgS Rust by Example によれば
drop が (自動で) 呼ばれるのは「スコープの終わり」と書いてあるけど、
それは変わってないと考えていいよね?
最終のアクセスがスコープのまんなからへんだったとしても、
drop はスコープの最後ってのは今でも保証されるんだよね?
drop が (自動で) 呼ばれるのは「スコープの終わり」と書いてあるけど、
それは変わってないと考えていいよね?
最終のアクセスがスコープのまんなからへんだったとしても、
drop はスコープの最後ってのは今でも保証されるんだよね?
361デフォルトの名無しさん
2020/12/11(金) 12:22:51.07ID:aOnuSvpC っぱ、D言語よ
362デフォルトの名無しさん
2020/12/11(金) 12:39:48.46ID:RI9UvvOD363デフォルトの名無しさん
2020/12/11(金) 18:10:27.06ID:7ILiijQb 数学的に完全に安全であるって証明を必要十分な早さで必要十分な量のコードに対して出きる人なら
おとなしくC使ってた方が良いんじゃないですかね
おとなしくC使ってた方が良いんじゃないですかね
364デフォルトの名無しさん
2020/12/11(金) 20:55:17.88ID:FrajMXPf365デフォルトの名無しさん
2020/12/12(土) 01:56:14.01ID:4q8SABHv >>364
いやです。
いやです。
366デフォルトの名無しさん
2020/12/12(土) 01:56:52.38ID:4q8SABHv >>363
少なくともRustは使いません。
少なくともRustは使いません。
367デフォルトの名無しさん
2020/12/12(土) 02:31:40.86ID:ub7HMY53 >>366
さようなら
さようなら
368デフォルトの名無しさん
2020/12/12(土) 02:52:34.60ID:4q8SABHv 問題点を指摘されたら排除する風潮。
369デフォルトの名無しさん
2020/12/12(土) 02:55:04.93ID:ub7HMY53 だってあなたがここに残っても得られる物何もないでしょ
370デフォルトの名無しさん
2020/12/12(土) 03:02:09.48ID:SyIWV3x/ アメリカでは人気言語なんだろ?
つまり問題なく安全に使えてるってことだよね
つまり問題なく安全に使えてるってことだよね
371デフォルトの名無しさん
2020/12/12(土) 03:03:58.91ID:4q8SABHv >>370
本当はそんなに人気無い。
本当はそんなに人気無い。
372デフォルトの名無しさん
2020/12/12(土) 03:12:39.08ID:SyIWV3x/ 全お前の中ではそうだろうね
373デフォルトの名無しさん
2020/12/12(土) 03:12:53.23ID:Dxj0vT3B >>359
なんでunsafe使わなかったの?
なんでunsafe使わなかったの?
374デフォルトの名無しさん
2020/12/12(土) 15:08:06.15ID:c8Fd2aiR375デフォルトの名無しさん
2020/12/12(土) 15:30:46.47ID:0QXb5/mT 数学的にもOKでも、書いてるのはコードなんだからプログラミング的にもOKじゃないといけない
っていうマジレスでいい?
言語には仕様があるわけでどの言語でもそうだろ。
そもそもプログラミングしない方がいいよ、数学でもしてりゃいいじゃん
っていうマジレスでいい?
言語には仕様があるわけでどの言語でもそうだろ。
そもそもプログラミングしない方がいいよ、数学でもしてりゃいいじゃん
376デフォルトの名無しさん
2020/12/12(土) 16:08:31.70ID:Xc3o7Cw9 コンパイラが証明できないけど人間が証明できるときのためにunsafeがあるんだから使えばいいのに
377デフォルトの名無しさん
2020/12/12(土) 16:37:40.21ID:M7Hs6d8R 数学的には完全に安全ww
こんな低脳ワード使ってるやつ相手にして君たち頭おかしいんとちゃう?
こんな低脳ワード使ってるやつ相手にして君たち頭おかしいんとちゃう?
378デフォルトの名無しさん
2020/12/12(土) 17:13:45.58ID:ub7HMY53 完全に安全ってフレーズだけは韻踏んでて好き
379デフォルトの名無しさん
2020/12/12(土) 18:01:42.98ID:E+dxDDH/ チューリング安全
380デフォルトの名無しさん
2020/12/12(土) 23:00:12.57ID:a3JdWCxW ヨシ! 今日も一日 ご安全に
381デフォルトの名無しさん
2020/12/12(土) 23:31:38.16ID:Updd5mRQ 今日は安全日なの。
382デフォルトの名無しさん
2020/12/12(土) 23:32:54.53ID:obc9b6E9 まあrust使ってれば完全に安全とか言い出す馬鹿もいたしどこにでも馬鹿はおるわ。
383デフォルトの名無しさん
2020/12/13(日) 02:17:41.84ID:1g8P/X2h rustでRSSリーダー作れましゅか?
384デフォルトの名無しさん
2020/12/14(月) 12:25:27.59ID:6iyAwzKw 色々調べて学んでみたが個人的にはRustは好きな言語ではないし
本の帯に書かれているようなC/C++の代替になるようなものではない。
メモリー安全なのはポインタが理解できない人向け。
Ruby/Puthon/JSのようなスクリプト言語的な使い方ならある程度できそうだが
それらより遙かに難しくなっている側面が有ることも否めない。
C/C++のように自由にデータ構造を作るには向いていない。
C#やJavaは速度は落ちるが、C/C++のコードを容易に移植できたが
Rustは出来ない。
本の帯に書かれているようなC/C++の代替になるようなものではない。
メモリー安全なのはポインタが理解できない人向け。
Ruby/Puthon/JSのようなスクリプト言語的な使い方ならある程度できそうだが
それらより遙かに難しくなっている側面が有ることも否めない。
C/C++のように自由にデータ構造を作るには向いていない。
C#やJavaは速度は落ちるが、C/C++のコードを容易に移植できたが
Rustは出来ない。
385デフォルトの名無しさん
2020/12/14(月) 12:30:01.03ID:6iyAwzKw >>384
C#やJavaは、データ構造やアルゴリズムを自由に作りやすいC/C++の自由さを
速度やメモリー効率を落とすことで初心者やポインタが理解できない人でも
手に入れることが出来る言語であった。
RustはC/C++と比べて効率は落ちにくいが C/C++の自由さは手に入らない。
ポインタを良く理解している人であってもRustのsafeモードでは独自の
データ構造やアルゴリズムを作るのは非常に難解。
なぜならライフタイムやBox<T>などの仕様が明言されて無く不明確だから。
C#やJavaは、データ構造やアルゴリズムを自由に作りやすいC/C++の自由さを
速度やメモリー効率を落とすことで初心者やポインタが理解できない人でも
手に入れることが出来る言語であった。
RustはC/C++と比べて効率は落ちにくいが C/C++の自由さは手に入らない。
ポインタを良く理解している人であってもRustのsafeモードでは独自の
データ構造やアルゴリズムを作るのは非常に難解。
なぜならライフタイムやBox<T>などの仕様が明言されて無く不明確だから。
386デフォルトの名無しさん
2020/12/14(月) 13:20:59.79ID:P41Kk9Hq387デフォルトの名無しさん
2020/12/14(月) 13:30:32.20ID:B3PAtuba いつもの人だし関心するような内容あったか?
388デフォルトの名無しさん
2020/12/14(月) 13:39:47.48ID:P41Kk9Hq すまんな、rustスレ初めて覗いたんだ
389デフォルトの名無しさん
2020/12/14(月) 14:39:07.69ID:GNvWdWeF390デフォルトの名無しさん
2020/12/14(月) 14:40:42.59ID:olJ8vT42 この人ほんとゴミやな
Rustは優秀な老害フィルターかもしれん
Rustは優秀な老害フィルターかもしれん
391デフォルトの名無しさん
2020/12/14(月) 15:05:11.25ID:GNvWdWeF 嫌いなものを無理に使う必要ないんだが、それを何度も何度も言いに来られてもな
説明しても聞く気ないし
説明しても聞く気ないし
392デフォルトの名無しさん
2020/12/14(月) 15:39:33.85ID:SRefut4W 仕様が公開されていないおじさん
393デフォルトの名無しさん
2020/12/14(月) 16:56:39.26ID:XcunzViE 数学的に正しい仕様が公開されてないおじさん
394デフォルトの名無しさん
2020/12/15(火) 09:41:38.47ID:uMItmhUb 老害に失礼だろ(笑)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 政府「まずは自助」これが許された理由。こんなんなら税金取るなよ政府がリバタリアンなら増税するな [472617201]
- 日本人のコメ離れが深刻、おまえらなんでコメ食わないんだ??? [974680522]
- 自民党のヒゲ「トランプおやびんが中国に何も言ってくれない」 [834922174]
- 日本人、世界で最もブランドに興味なし🇯🇵 [462275543]
- キャンプ場 寝ている少女(19)のテントに入り120分わいせつ行為をした会社員(45)を逮捕 京都市 [546716239]
- ネトウヨ「中国の例の証拠動画、日本側の応答が海自の無線規則とは違うので捏造です」海自の動画でネトウヨの嘘だとバレる [165981677]
