gpt4 book ai didi

rust - 语法 : 'let secretbox::Key(ref mut kb) = k;' 的解释

转载 作者:行者123 更新时间:2023-11-29 08:03:54 25 4
gpt4 key购买 nike

我一直在使用 sodiumoxide 来创建一个“密码管理器”。文档中的这个特殊示例让我感到难过:

use sodiumoxide::crypto::secretbox;
use sodiumoxide::crypto::pwhash;

let passwd = b"Correct Horse Battery Staple";
let salt = pwhash::gen_salt();
let mut k = secretbox::Key([0; secretbox::KEYBYTES]);
{
let secretbox::Key(ref mut kb) = k;
pwhash::derive_key(kb, passwd, &salt,
pwhash::OPSLIMIT_INTERACTIVE,
pwhash::MEMLIMIT_INTERACTIVE).unwrap();
}

特别是行:

let secretbox::Key(ref mut kb) = k;

我不太明白它的语法或它在做什么。如果有人可以向我解释这一行中发生的事情,那就太棒了。谢谢。

最佳答案

secretbox::Key(ref mut kb) 是一个 pattern . secretbox::Keytuple struct , 因此它的字段未命名并用括号括起来。 ref mut kbkb 绑定(bind)到对结构中唯一字段的可变引用。

你也可以这样做:

let kb = &mut k.0;

关于rust - 语法 : 'let secretbox::Key(ref mut kb) = k;' 的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42941885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com