gpt4 book ai didi

copy - std.algorithm.copy 和 std.digest

转载 作者:行者123 更新时间:2023-12-01 04:41:22 24 4
gpt4 key购买 nike

当我使用 std.algorithm.copystd.digest对象,我在使用 put 时得到了不同的结果逐字节。为什么?

import std.stdio;
import std.digest.digest;
import std.digest.md;
import std.algorithm;

void main() {
string s = "Hello!\n";
auto d1 = makeDigest!MD5;
auto d2 = makeDigest!MD5;
foreach (ubyte b; s) {
d1.put(b);
}
s.copy(d2);
writeln(digest!MD5(s).toHexString);
writeln(d1.finish().toHexString);
writeln(d2.finish().toHexString);
}

输出:
E134CED312B3511D88943D57CCD70C83
E134CED312B3511D88943D57CCD70C83
D41D8CD98F00B204E9800998ECF8427E

最佳答案

d2 按值传递给复制。数据在函数内部被复制,但是当它返回时,d2外部变量未修改!

我有点认为这可能是一个错误:当前的行为对我来说没有多大意义。当你复制它时,通过引用来做是有意义的。单元测试只测试半引用(它们是指针)的数组,它适用于它们。

关于copy - std.algorithm.copy 和 std.digest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999680/

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