[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
22: デフォルトの名無しさん [sage] 2024/05/30(木) 14:46:49.26 ID:YCUWE+u3(1) AAS
>>20
20(1): デフォルトの名無しさん [sage] 2024/05/30(木) 12:31:47.54 ID:D8KcVhgB(1) AAS
つまりwindowsクレートはsafe interfaceの提供をサボってるということ?
>>21
21(2): デフォルトの名無しさん [sage] 2024/05/30(木) 12:33:13.48 ID:VdmPCECN(1) AAS
Rustと外側との境界はunsafeにせざるを得ないのは当たり前なのに肝心なところはunsafeと言われてもなぁ。
レビューすべき箇所が局所化されるだけでも十分なメリットだろ。
どちらも正しい
Rustとその外側の境界部分で必ずunsafeが生じるからそこを問題にすることはない
ただしその部分は安全なインタフェースを提供するモジュールかできればクレートとして分離するのが好ましい
160: デフォルトの名無しさん [sage] 2024/06/15(土) 21:06:34.26 ID:uRWofhsS(4/11) AAS
コピペしただけなんだけどね

2chスレ:tech
372
(2): デフォルトの名無しさん [sage] 2024/06/25(火) 23:30:51.26 ID:oKw2Pfcc(1) AAS
>>347
347(1): デフォルトの名無しさん [sage] 2024/06/25(火) 07:25:12.24 ID:H43UHQbv(1) AAS
>>346
ほぼ定数になる部分まで
実行時に二重ループで毎回計算してるのは効率悪いと思う
展開しないほうがよい

展開する時も二重ループは発生するだけでなく単なる計算より重い
さらに本来は回避できる浮動小数点を使わざるを得なくなる
そして>>342
342(2): デフォルトの名無しさん [sage] 2024/06/24(月) 23:33:41.46 ID:FIb4AZ4T(1/2) AAS
>>328-329
なんかダサい
外部リンク:paiza.io
pub fn f(x: i32) -> i32 {
(
-2413f64*(x.pow(6) as f64)/120960f64
+739f64*(x.pow(5) as f64)/1260f64
-157991f64*(x.pow(4) as f64)/24192f64
+69551f64*(x.pow(3) as f64)/2016f64
-2691673f64*(x.pow(2) as f64)/30240f64
+88679f64*(x as f64)/840f64
-905f64/21f64
+0.5)
as i32
}
pub fn g(y: i32) -> i32 {
(
13f64*(y.pow(6) as f64)/120960f64
-(y.pow(5) as f64)/315f64
+1415f64*(y.pow(4) as f64)/24192f64
-1511f64*(y.pow(3) as f64)/2016f64
+144793f64*(y.pow(2) as f64)/30240f64
-3053f64*(y as f64)/280f64
+185f64/21f64
+0.5)
as i32
}
pub fn main() {
let a = vec![(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)];
for (x, _y) in &a { println!("{}, {}", x, f(*x)); }
for (_x, y) in &a { println!("{}, {}", y, g(*y)); }
}
のコードをその例のような静的ではなく問題入力値に応じて動的に作り出さなければならない

一方で展開しないならばRustコード数行だけで済み任意の問題に対応できる
割り算部分も0/N=0かN/N=1だけなので整数で済む
515
(1): デフォルトの名無しさん [] 2024/06/30(日) 20:38:10.26 ID:oQ6wZd+v(1) AAS
let a: [u32; 4] = [1, 2, 3, 4];
let s: &[u32] = &a[1..3];

a[5]; と書くとコンパイルエラーが発生しますが、
s[5]; と書くとコンパイルは通り実行時にエラーが発生します。

なぜ、 s[5]; が範囲外の領域へのアクセスであることをコンパイル時に見抜けないのでしょうか?

本を見ても、理由が書いてないです。
ただ、そうなるとしか書いてありません。
623: デフォルトの名無しさん [sage] 2024/07/07(日) 11:55:49.26 ID:nRN7u0+P(5/6) AAS
根本的に継承だけの問題じゃない
結局可視であろうがなかろうが関数自体の挙動が理解しないといけない

addがあってもリストの一番前に追加するか後ろに追加するかと言う機能の違いが合って
コーディングする側がそれを統一的に扱って思った場所に追加されずにバグになる
そういう話だからトレイトだからとか継承亡くしたからとかどうとか関係ない
690: デフォルトの名無しさん [sage] 2024/07/09(火) 22:52:12.26 ID:j8eVmrRh(1) AAS
猿ども落ち着いてください!

ここで論破合戦したところでなんの得にもなりません
791: デフォルトの名無しさん [sage] 2024/07/12(金) 22:52:07.26 ID:LuKbokrL(7/9) AAS
>>789
789(1): デフォルトの名無しさん [sage] 2024/07/12(金) 22:30:09.43 ID:KyXC0KGT(7/7) AAS
>>787
強制されてないから
嫌なら使わなければいい
俺はそんなことしないよ
全てを参照カウンタなんて使わずに書かない理由を探る
939: デフォルトの名無しさん [] 2024/07/23(火) 21:36:57.26 ID:1jhTJKzb(1) AAS
>>936
936(1): デフォルトの名無しさん [sage] 2024/07/23(火) 09:22:40.63 ID:iSDzXJU2(1) AAS
同じ型だけの要素で構成されるtupleならいけそうだけど
色んな型ば混ざってるtupleはエラー出そう
Haskellだとタプルって構造体代わりだから、色んな型が混ざってる方が普通だけど…。
(ともすれば関数も入れるし。同じ型だけってのはリストのイメージ)

Rustじゃ用途違うん?
942
(1): デフォルトの名無しさん [] 2024/07/23(火) 23:38:39.26 ID:QoNSkCmh(1) AAS
「tupleでイテレートできないの?」という質問に「こういうイテレータなら異なる型を混ぜられるよ」と回答するあたりがいかにもな感じ
率直に「できる/できない」で回答した上で補足として書けばいいのに
986
(1): デフォルトの名無しさん [] 2024/07/30(火) 12:06:12.26 ID:tiWzrJ23(1) AAS
>>984
984(1): デフォルトの名無しさん [sage] 2024/07/30(火) 01:24:35.90 ID:xgbf/AIH(1) AAS
>>979
この件って、RustはC++と比べて無駄にムーブするから遅いってこと?

>コンストラクタを抜けたとき、C++とちがってRustは値をムーブしちゃうので
>struct内部を参照したポインタが変なところを参照してバグる

って書いてるのに、読解力無い人?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s