X



言語のRust詳しい人教えて
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 16:27:21.290ID:lrjHiUfC0
Vectorにメソッド生やしたいんだけどやり方わからん
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 17:09:20.317ID:XG3yZ7T7r
trait MyTrait {
fn method(&self)
}

impl MyTrait for Vec<u8> {
fn method(&self) {

}
}
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 17:10:16.331ID:XG3yZ7T7r
確かこうだったと思う
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 17:11:43.182ID:XG3yZ7T7r
このメソッド使うときはMyTraitをuseしないといけないので注意
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 17:12:58.517ID:XG3yZ7T7r
u8 とか書くんじゃなくてItemだっけか

で中でtype Item = u8;とかやんなきゃいけなかった気がする
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/06/12(日) 17:17:46.283ID:XG3yZ7T7r
trait GetFlatten {
type Item;

fn get_flatten(&self, n: usize) -> Option<&Self::Item>;
}

impl GetFlatten for Vec<Option<u64>> {
type Item = u64;

fn get_flatten(&self, n: usize) -> Option<&Self::Item> {
self.get(n).map(Option::as_ref).flatten()
}
}

fn call_get_flatten() {
let v: Vec<Option<u64>> = Vec::new();
let item = v.get_flatten(0);
assert_eq!(item, None);
}
■ このスレッドは過去ログ倉庫に格納されています

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