rust新手, 我知道trait中的常见关联类型语法如下:
pub trait Iterator {
type Item;
fn next(&mut self) -> Option<Self::Item>;
}
impl Iterator for Counter {
type Item = u32;
fn next(&mut self) -> Option<Self::Item> {
// 省略
}
}
但是我最近在看一些subtrate源码,看到一些代码:
pub trait Config {
type ReservationFee: Get<BalanceOf<Self>>;
}
parameter_types! {
pub const NickReservationFee: u128 = 100;
}
impl pallet_balances::Config for Runtime {
type ReservationFee = NickReservationFee;
}
找了一些教程,没找到哪本书里解释别名名称冒号后面的类型是用来干嘛的? 看了官方的The Rust Reference的Type aliases,里面有type语法格式:
type IDENTIFIER GenericParams? ( : TypeParamBounds )? WhereClause? ( = Type )? ;
TypeParamBounds就是我想了解的内容,可惜这里也没说清楚这个语法。 只有最后有一句: A type alias with TypeParamBounds may only specified when used as an associated type in a trait. 请哪位朋友帮忙解释一下这个冒号后面的内容? 谢谢
Ext Link: https://doc.rust-lang.org/reference/items/type-aliases.html
1
共 2 条评论, 1 页
评论区
写评论trait继承,在trait的基础知识里有的。相当于了java接口继承。
这很好理解啊,就跟普通的traitbound一样,只不过约束的是关联类型而已,实现这个trait时,这个关联类型要求满足冒号后面的的trait