Rust part14

レス数が1000を超えています。これ以上書き込みはできません。
2022/02/12(土) 01:24:16.59ID:XYE+Rws6
公式
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を学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

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

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

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

前スレ
Rust part13
https://mevius.5ch.net/test/read.cgi/tech/1636247099/
2022/05/12(木) 17:27:09.04ID:x3l/UcP6
>>988
抽象的な考えが出来ない人なのかな
そういうのはあくまでも例であってZを表示したいわけではないことくらい分かるでしょ
2022/05/12(木) 17:46:52.13ID:yYN31ZGU
>>976
上限のある型を作ってトレイト境界を満たしてやるとちゃんと上限で止まるんだな

#[derive(Debug,Clone)]
struct FiveBits(usize);
impl FiveBits {
fn make(n: usize) -> Option<FiveBits> {
(n >> 5 == 0).then(|| FiveBits(n))
}
}
impl TryFrom<usize> for FiveBits {
type Error = &'static str;
fn try_from(n: usize) -> Result<Self, Self::Error> {
FiveBits::make(n).ok_or("overflow")
}
}
impl std::ops::Add for FiveBits {
type Output = Self;
fn add(self, rhs: Self) -> Self {
FiveBits::make(self.0 + rhs.0).unwrap()
}
}
impl num::CheckedAdd for FiveBits {
fn checked_add(&self, rhs: &Self) -> Option<Self> {
FiveBits::make(self.0 + rhs.0)
}
}
impl std::fmt::Display for FiveBits {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
2022/05/12(木) 17:51:39.83ID:9RFeMFB6
>>980
Rangeは上限ありだから大丈夫
RangeFromならば>>976みたいなのでいいんじゃない?
2022/05/12(木) 17:57:40.16ID:W5nxdksy
>>985
それは君が思い込みで勘違いをしている
>>976のイテレータを見るとchecked_addが使われているため
その型に上限が有れば上限で止まるから君の言うとおり
しかしその型に上限が無ければ(リソースの有る限り)無限に進むことになる
2022/05/12(木) 18:12:51.67ID:evRfTR7c
>>789
> fn fizzbuzz(&self) -> FizzBuzzResult<&Self> {

その関数を使わせてもらってイテレータにしようと思ったら
参照を返しているために非Copy型に対して上手くいかなくて手詰まってしまった
2022/05/12(木) 18:18:34.21ID:dV7c/A+s
まーた汚部屋になってきたなー
2022/05/12(木) 18:28:55.30ID:cuIcFT6k
次スレ https://mevius.5ch.net/test/read.cgi/tech/1652347700/
2022/05/13(金) 16:05:11.97ID:QlGabNLh
梅丸
2022/05/13(金) 16:05:37.61ID:B3PTMj0D
梅錦
2022/05/13(金) 16:06:40.24ID:iApzi+VJ
梅初め
2022/05/13(金) 16:07:11.25ID:cgq/NsH4
梅おろし
2022/05/13(金) 16:08:29.00ID:aOoPRZFF
>>1000 なら長門は俺の嫁
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 90日 14時間 44分 13秒
レス数が1000を超えています。これ以上書き込みはできません。