0

自从我决定使用 Rust 和 Go 使自己多样化后,我变得过分担心复制/引用/移动等。

最近我真的想知道是否ValueTuple也受到典型警告的影响struct,即它的大小不应大于 16 字节以避免在此处和那里复制值类型时出现性能:https ://stackoverflow.com/a/1082341/ 4636721

因此,如果说我们有一个值元组(decimal, decimal, decimal, decimal),这意味着我们最好使用经典Tuple<decimal, decimal, decimal, decimal>类来传递该元组?

[编辑]

用例示例:假设下面的方法会被调用很多

public (decimal, decimal, decimal, decimal) GetSuperImportantTuple(int input)
{
    var aParameter = GetAParameter(input);

    // Copy when getting that tuple
    var tuple = GetA4DecimalsValueTuple();

    // Copy into that function
    var anotherParameter = GetAnotherParameter(tuple);

    // Copy when returning the value
    return TransformValueTuple(tuple, anotherParameter);
}
4

1 回答 1

0

像往常一样,这取决于。值类型和引用类型不同。这种差异可能与性能有关。但是,您也可以决定只通过引用参数传递一些东西。如果您想知道哪种情况真正运行得更快以及您想要使用它的方式,请使用秒表进行测试。性能,通常是要衡量的,而不是要问的。

于 2018-12-11T14:54:51.357 回答