Rust part30

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2025/05/28(水) 09:31:36.60ID:ciITeZ5D
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part29
https://mevius.5ch.net/test/read.cgi/tech/1746200850/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/06/21(土) 22:49:35.45ID:qYLKV/K+
>>949
>NonZeroは非ゼロの保証というよりOptionと一緒に使うためのものだからね
Optionと一緒に使うためのものというのはよく意味がわからない

例えばOptionに置き換えて考えてみたとしてこういう実装があったらおかしいと思わない?
fn make_buffer(size: Option<usize>) -> Buffer {
let size = size.expect("size must not be None”)

}

簡単に型で表現できないものならまだわかるんだけど
2025/06/21(土) 23:02:46.26ID:qYLKV/K+
呼び出し元は外部入力なら
let size = NonZeroUsize::new(input_size)?;
let buffer = make_buffer(size);

定数なら
let buffer = make_buffer(NonZeroUsize::new(1024).unwrap());

validation前とvalidation後で型を変えるプラクティスと同じでこっちのほうが望ましいことのほうが多いんじゃないかという気がする
2025/06/21(土) 23:54:32.82ID:l7fBsL1H
整理されて今はこう書くNonZero::<usize>::new(1024)
いずれにせよ外部データ由来時でもpanicさせ得る>>947は筋が悪い
2025/06/22(日) 00:46:32.15ID:DjMaTCto
slice::windowsとかstdでも似たような実装はそれなりにある
pub fn windows(&self, size: usize) -> Windows<'_, T> {
let size = NonZero::new(size).expect("window size must be non-zero");
Windows::new(self, size)
}

windowサイズはバグ以外では0を指定しないだろうという想定だと思うがcalleeとcallerのコードを書く人間が異なっていて認識の齟齬があったりすればバグになるからエルゴノミクスとバグリスクのトレードオフってことになる
2025/06/22(日) 01:30:55.82ID:MKJ6VV9n
docコメントの
///
/// # Panics
///
/// Panics if `size` is zero.
///
とセットで見ないといけない
2025/06/22(日) 09:45:37.71ID:fHVyA0qw
RAIIが破綻するレベルのパニック、という意味の専門用語があればいいんだよね
956デフォルトの名無しさん
垢版 |
2025/06/22(日) 12:30:29.11ID:4aXQSYOG
・人間の思考「脳波」は頭蓋骨の外に漏れない
人間の脳は発光していた!「脳が放つ光」の観測に初成功
2025.06.19 12:00:38 THURSDAY
https://nazology.kusuguru.co.jp/archives/179808
>>カナダ・アルゴマ大学(Algoma University)の最新研究で、ついにこの「脳の光」を頭蓋骨の外から観測することに成功したのです。
>>UPEは細胞の代謝活動、特に酸化反応によって発生する副産物の一種です。
>>以来、UPEはあらゆる植物や動物の細胞からも確認されており、生体内の酸化ストレスや老化、さらにはがんの診断補助にも応用が期待されてきました。
>>脳は体の中で最も代謝が活発な臓器のひとつであり、神経活動に伴って活性酸素が多く発生します。
>>チームは今回、20人の健康な成人を対象に、特殊な装置を用いた実験を実施しました。
>>被験者は真っ暗な部屋に座り、頭には脳波計を装着。
>>その周囲には、光電子増倍管(PMT)と呼ばれる極微弱な光を検出する装置が配置されました。
>>そして被験者には、目を開ける/閉じる、あるいは音楽(120BPM)を聴くといったシンプルなタスクを行ってもらい、その間のUPEと脳波の変化を同時に測定したのです。
☆>>まず、脳からのUPEは背景光(周囲の空気中のノイズ)とは明確に異なる変動パターンを持つことが判明したのです。
>>とくに後頭部(視覚野)と側頭部(聴覚野)から検出された光は、安静時でも一定のリズムと変動性を示し、他の部位とは異なるスペクトル的特徴を持っていました。
>>さらに目を閉じたときに増える「アルファ波」と呼ばれる脳波の活動と、UPEの強さが同期していることも発見されました。
>>これはつまり、脳の電気的な信号(脳波)と、化学的な代謝反応(UPE)が連動していることを意味します。
>>この成果は、従来のfMRIやPETスキャンのような「重装備で高コスト」な装置を使わずとも、非侵襲・低刺激で脳機能の状態を“光”から読み取る可能性を示すものです。
>>研究者たちはこの新しい手法を「光脳波記録(photoencephalography)」と名付けました。
2025/06/22(日) 12:58:47.51ID:LDKwjazM
>>955
パニックのレベルじゃなく処理単位の特性だけどUnwindSafeがある
2025/06/22(日) 23:16:05.62ID:fHVyA0qw
無限ループがあれば、終了しないスレッドや呼ばれないデストラクタもありうる
bottomもabortもpanicも、無限ループよりはマシだから禁止されない
2025/06/22(日) 23:59:22.53ID:ohTY4CfY
exitよりもpanicが優れている
多くのメリットがある
2025/06/23(月) 15:14:34.98ID:Lo0+xYyX
無職や転職をしたい
上記の方を紹介していただけませんか?

誰でも歓迎❣
未経験でも40歳まで採用しています⭕

ぜひご相談ください🙏

https://i-c-i.jp/members/

電話番号
03-6459-0063
2025/06/23(月) 15:14:44.43ID:Lo0+xYyX
株式会社アイ・シー・アイ
野村総合研究所が設立した、信頼と実績のあるIT企業です。
未経験でも大丈夫!40歳までの方ならどなたでもご応募いただけます。
日本の大手大企業のソフトバンク、キャノングループ、富士産業で働けます!
雇用形態は無期雇用派遣。一つの現場で最低5年間じっくりインフラ運用監視の経験が積めます。

年収は280万円、賞与は年3回と安定した待遇をご用意し、「社員の人生を幸せにするため」の福利厚生も充実しています。

当社はまだまだスタートアップ。数年後には事業規模、
会社規模を倍増させたいと考えています。
その際、あなたには会社の中核メンバーとして、一緒に会社を引っ張っていただきたいのです。
962デフォルトの名無しさん
垢版 |
2025/06/23(月) 18:22:32.34ID:uX2oVrQ8
人売りの奴隷集め
963デフォルトの名無しさん
垢版 |
2025/06/23(月) 21:09:50.86ID:0odK9WS3
Z世代の皆様にしっかり稼いで頂きたいという思いから、高収入案件をご紹介させていただいております。
2025/06/24(火) 22:23:36.74ID:KcGBlJeb
Rustへ移行のためのドキュメント「C++ to Rust Phrasebook」発表
https://techfeed.io/entries/683ccb678fc2c0556f0d68d0

C++でおなじみのイディオムや設計パターンを、Rust流にどのように書き換えるかを体系的に示したリファレンスである。
各章は具体的なコード例と、それに伴う設計上のトレードオフについての解説で構成される。
「C++ならこう書くがRustでは?」と行き詰まった場面で索引的に参照する使い方も想定されている。
2025/06/25(水) 23:33:16.67ID:zC2X3VO4
>>964
「C++ to Rust Phrasebook」
https://cel.cs.brown.edu/crp/
2025/06/26(木) 23:30:50.97ID:IZtnbrew
https://facet.rs/
2025/06/27(金) 22:34:08.47ID:9/4Hvrnc
所有権を返すfoo()で&foo()をそのまま使える時と
エラーとなるためlet tmp = foo(); してから&tmpを使わされる時と
temporary lifetime extensionルールが関係しているの?
2025/06/27(金) 23:03:36.64ID:1LWAsQhh
>>967
おそらくそうだけどコード見ないことには何とも
2025/06/28(土) 00:59:51.80ID:CvmYv9Uy
躁鬱が激しいな
970デフォルトの名無しさん
垢版 |
2025/06/28(土) 13:45:14.63ID:YWzO1cVn
つるつるわれめ
2025/06/28(土) 21:59:50.08ID:cIKPEg+8
RPITでもTAITでもないimpl Traitは何と呼ばれているの?
2025/06/29(日) 02:06:59.79ID:9bVKBGV1
Announcing Rust 1.88.0
https://blog.rust-lang.org/2025/06/26/Rust-1.88.0/
973デフォルトの名無しさん
垢版 |
2025/06/29(日) 02:41:16.16ID:712DhJe3
>>964-965
boost使いまくってたら
974デフォルトの名無しさん
垢版 |
2025/06/29(日) 02:43:51.09ID:712DhJe3
わろす
https://uchan.hateblo.jp/entry/2018/08/24/234334
2025/06/29(日) 03:42:04.63ID:FAAHlPSo
まだ中3女子がいた時代か…
2025/06/29(日) 23:21:46.38ID:kcK1wtsO
>>972
便利になったなー

if let Channel::Stable(v) = release_info()
 && let Semver { major, minor, .. } = v
 && major == 1
 && minor == 88
{
 println!("`let_chains` was stabilized in this version");
}
2025/06/30(月) 21:42:35.77ID:Xr9zaQtP
if文を分けなくてよくなったんか
letした変数を次の条件で使えるのは便利だな
2025/06/30(月) 23:28:37.87ID:Ewx8aV4S
let else でもチェーンできるのかな
2025/07/01(火) 01:45:34.56ID:RyiUYuGe
let chainとかtryブロックとか時間かかりすぎで将来が心配
2025/07/01(火) 08:40:30.66ID:WjfKubzq
ぶっちゃけクソsyntaxだろw
2025/07/01(火) 08:56:09.16ID:WFD2epuk
プログラミングしたことある人ならば
>>976のようなケースがよく出てくることがわかる
この構文がないと多段ifで可読性が落ちる
2025/07/01(火) 13:13:02.59ID:wS9kOuak
むしろなんで最初から用意しようとしなかったのか不思議で仕方がない機能

>>976の例は説明用とはいえ中の人がSemverをChannelで包むのはいただけない
2025/07/01(火) 23:18:30.26ID:fT6MdngX
>>976
最近まともな進化がなかったが、久しぶりにいい変更点が来た感じする
984デフォルトの名無しさん
垢版 |
2025/07/02(水) 08:10:37.08ID:h5Fr+SaE
ガイジプログラマーだけど質問あるガイジ?
ガイジガイジガイジ死んだ方が良いガイジ地頭悪いガイジ
死ぬガイジ虚言だから死なないガイジガチで死んだ方が良いガイジ
985デフォルトの名無しさん
垢版 |
2025/07/02(水) 08:12:19.09ID:h5Fr+SaE
後輩が気を使って僕に席を譲ってくれたガイジ…死んだ方が良いガイジ…死にたいガイジ…
2025/07/02(水) 14:18:35.20ID:jzgTyLq2
>>976
if文の途中でパターンマッチングできてlet等で変数宣言できるようなプログラミング言語は他にありますか?
987デフォルトの名無しさん
垢版 |
2025/07/02(水) 15:55:37.03ID:J+FNqJjG
>>984
ガイジガイジよいしょよいしょ
2025/07/02(水) 18:49:24.09ID:NOqRQoPr
>>986
いくらでもあるだろw
なんでそれをRustスレで聞くんだよ
複…、バカなの?
2025/07/02(水) 21:26:49.42ID:Oh5RPAnK
>>986
LISP 系や ML 系だと出来るのが多いと思う
2025/07/02(水) 21:52:14.46ID:oQJmxzOP
>>986
今回の>>976のようなif条件内で連鎖できる言語はないが単純なものならある
2025/07/02(水) 21:56:06.59ID:VJuqxJR/
C#でもisで出来るでしょ?もちろん&&でつなげられる
2025/07/02(水) 22:41:30.16ID:z9oJfvdC
みなさんおわかりだろうか
>>976

>>986

>>990
2025/07/02(水) 22:47:53.08ID:upgcwtw3
C#はようやくリストのパターンマッチングができるようになったところ
2025/07/02(水) 23:40:48.12ID:+kkKLbZ1
>>982
仕様を定めるため慎重に議論されてきた
糖衣構文が定められたが既存のdrop順序と合わないと判明した
今年からのRust 2024 editionで新たに定めることで解決してこのたび導入された
2025/07/03(木) 00:15:02.16ID:Wcs1wXTl
>>992
本人以外全員分かってると思う

そして…
996デフォルトの名無しさん
垢版 |
2025/07/03(木) 11:05:56.13ID:FLjzPh5e
時は動きだす
2025/07/03(木) 11:33:08.05ID:dZ3pJe+2
シンタックスシュガーだから中途半端なんだよな
2025/07/03(木) 16:19:31.79ID:44NH8ILk
パターンマッチングはユニフィケーションにまで発展しないかね。
2025/07/03(木) 19:28:59.84ID:OMTYLr6T
>>986
Perl最強だぞ
2025/07/03(木) 19:58:10.70ID:080rUSul
おわり
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 36日 10時間 26分 35秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況