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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
17
(1): デフォルトの名無しさん [] 2024/05/29(水) 17:06:12.76 ID:643EHPjo(1) AAS
>>9
9(1): デフォルトの名無しさん [sage] 2024/05/28(火) 23:01:09.87 ID:r9uY5dzk(1) AAS
「Sudo for Windows」はRustで開発されている!
メモリ安全が重視される分野で採用が広がるRust言語
外部リンク[html]:forest.watch.impress.co.jp
次期大型更新「Windows 11 バージョン 24H2」に
搭載されることが確定した「Sudo for Windows」が、
Rust言語で開発されていることがわかった。
これ仕組み上、console APIやTUIは動作しない
(それと肝心なところのほとんどがunsafeなのは見なかったことに)
227: デフォルトの名無しさん [sage] 2024/06/16(日) 21:13:16.76 ID:Crm/SwBu(5/7) AAS
>>224
224(1): デフォルトの名無しさん [sage] 2024/06/16(日) 19:08:46.55 ID:dwkxcYMW(22/22) AAS
>>223
つまり所有権も静的に解析できる?
できるというか、それが Rust のキモやで。
299: デフォルトの名無しさん [sage] 2024/06/21(金) 12:58:06.76 ID:wIxdZD1d(1/2) AAS
乱数はこれを実装してみた

外部リンク:ja.wikipedia.org

外部リンク:paiza.io
398: デフォルトの名無しさん [sage] 2024/06/27(木) 11:05:58.76 ID:AKJ8/1zo(2/8) AAS
>>395
395(2): デフォルトの名無しさん [sage] 2024/06/27(木) 10:21:46.91 ID:nawTLqWn(2/2) AAS
>>389
キャッシュに乗るという前提なら、
確保・解放が遅いだけでアクセス速度とかは変わらないってことでOK?

キャッシュに乗る確率とかもスタックとヒープでやっぱちがうんかな
キャッシュに乗りやすいというのはアクセスに局所性があるということ。
関数自体が小さくてすぐ終わるなら普通はスタックのほうが以前と近い場所にアクセスすることになる。
412
(1): デフォルトの名無しさん [sage] 2024/06/27(木) 18:20:02.76 ID:veLj9zg3(3/4) AAS
つまりC++同様、ポインタの糖衣構文としての参照?
512: デフォルトの名無しさん [sage] 2024/06/30(日) 18:12:41.76 ID:aILYkgH6(1) AAS
さすが二つ名持ちの汚コーダー
ひと味もふた味も違う
517: デフォルトの名無しさん [sage] 2024/06/30(日) 21:23:59.76 ID:MSv8cbxu(4/5) AAS
>>515
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]; が範囲外の領域へのアクセスであることをコンパイル時に見抜けないのでしょうか?

本を見ても、理由が書いてないです。
ただ、そうなるとしか書いてありません。
静的にサイズが定数だと静的に比較できるから事前にコンパイルエラーとなる
配列は静的にサイズが定数
スライスもこのように静的にサイズを定数にしてやれば事前にコンパイルエラーとなる
const X: &[u32] = &[1, 2, 3, 4];
let x = X[5];
522: デフォルトの名無しさん [sage] 2024/07/01(月) 00:45:59.76 ID:d9FHgeU6(1) AAS
>>521
521(1): デフォルトの名無しさん [sage] 2024/06/30(日) 23:09:55.43 ID:MSv8cbxu(5/5) AAS
>>520
for_eachは値を返せない
関数は基本的に値やエラーを返す
イテレータ利用で値やエラーを返すためにはfor_eachではなくcollectやfoldなどを用いる

>>507のように表示するだけで値を返さない場合であっても
関数はエラーを返さなければならない
>for_eachは値を返せない
for_eachはunitを返してるよ

>関数は基本的に値やエラーを返す
voidやunitやnilを返すものも関数だよ

>イテレータ利用で値やエラーを返すためにはfor_eachではなくcollectやfoldなどを用いる
try_for_each使ってね
file openやprintのような副作用をイテレータのmapで行うのは関数型の考え方からは程遠いよ
712
(1): デフォルトの名無しさん [sage] 2024/07/10(水) 02:33:48.76 ID:H5PXuDT2(1) AAS
>>707
707(2): デフォルトの名無しさん [sage] 2024/07/10(水) 01:13:16.99 ID:1XduDtMr(1/4) AAS
>>688
>>679の言う「LSPが対象としている遺物における諸問題に悩まされずに済むように」するためには必要なんだよ。
LISKOVのA behavioral notion of subtyping でも「include exception」と言っているだろ。

まぁ、panicが例外にもなれないそびえ立つクソだからRustから排除すべき、と言うなら同意するが。
LSPでは例外を返すなら基底型で返す例外とそのサブタイプのみに限られるとしか言及していない
例外で値をキャッチできなくなることや値を返す抜け道になることを防ぐためだ

ちなみにRustのpanic!では値を返すことはできなくてpanicメッセージのみ
そして普通のプログラムでpanicをキャッチすることはない点など前提が全く異なる
Rustで従来の例外を扱うケースはpanic!を使わずにResultの返り値で返す
したがってpanic!はLSPで出てくる例外の話に該当しないだろう
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s