言語のRust詳しい人教えて
■ このスレッドは過去ログ倉庫に格納されています
Vectorにメソッド生やしたいんだけどやり方わからん trait MyTrait {
fn method(&self)
}
impl MyTrait for Vec<u8> {
fn method(&self) {
}
} このメソッド使うときはMyTraitをuseしないといけないので注意 u8 とか書くんじゃなくてItemだっけか
で中でtype Item = u8;とかやんなきゃいけなかった気がする 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);
} ■ このスレッドは過去ログ倉庫に格納されています