我如何获取从另一个函数struct
返回的a的值Result
?下面的例子。
#[derive(Debug)]
pub struct Keypair(ed25519_dalek::Keypair);
pub fn keypair_from_seed(seed: &[u8]) -> Result<Keypair, Box<dyn error::Error>> {
let dalek_keypair = ed25519_dalek::Keypair { secret, public };
Ok(Keypair(dalek_keypair))
}
fn main(){
//here seed_bytes is mnemonics
let sk = keypair_from_seed(&seed_bytes);
//sk contains the secret key and public key, i want to extract it different secret key & public key
}
如果你感到很自信
let sk = keypair_from_seed(&seed_bytes).unwrap();
要么
let sk = keypair_from_seed(&seed_bytes).expect("my own failure message");
但是,建议这样进行
if let Ok(sk) = keypair_from_seed(&seed_bytes) {
// ... use sk ...
} else {
// ... sk is not available, may be should
// we warn the user, ask for an alternative ...
}
或者,如果您想显式处理错误
match keypair_from_seed(&seed_bytes) {
Ok(sk) => {
// ... use sk ...
},
Err(e) => {
// ... sk is not available, and e explains why ...
},
}
请注意,如果包含这些行的函数也能够返回错误,则可以使用?
符号将其传播(如果所返回的错误keypair_from_seed()
可转换为函数所返回的错误)
let sk = keypair_from_seed(&seed_bytes)?;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句