相关疑难解决方法(0)

为什么选择Struct Over Class?

使用Swift,来自Java背景,为什么要选择Struct而不是Class?看起来它们是相同的,使用Struct提供更少的功能.为什么选择呢?

struct class design-principles swift

465
推荐指数
10
解决办法
14万
查看次数

结构是否比类"更快" - 一般情况下还是在.NET框架中?

由于结构是值类型,因此在将数据作为参数传递给方法时会复制它们的数据.例:

int someInt = 7;

DoSomeMethod(someInt); // <-- This is passing the "value" 7.
Run Code Online (Sandbox Code Playgroud)

到目前为止,很容易理解,你可能想知道我的问题是如何有效的......所以请考虑以下几点:

public struct TimmysStructOfGoodness
{
    public int SomeInt1;
    public int SomeInt2;
    public int SomeInt3;
    // ... later that day ...
    public int SomeInt999;
}
Run Code Online (Sandbox Code Playgroud)

然后,参考以下代码:

TimmysStructOfGoodness someStructOfGoodness = new blah blah blah...

DoSomeMethod(someStructOfGoodness); // <-- **HERE IS WHERE THE QUESTION APPLIES!**
Run Code Online (Sandbox Code Playgroud)

上面的语句是否试图分配几个内存来"复制"我的值类型(struct)?

如果答案是肯定的 - 那么何时/哪里是"更快"和"更慢"之间的界线?

如果不是 - 那为什么不呢?因为我所知道的价值类型,这应该是一个问题.

主要免责声明:我知道这与你为什么要使用一个类的结构无关,而且我知道我永远不会用999个字段创建一个结构 - 这只是一个基本的内部和内部等问题: )

.net memory-management data-structures

17
推荐指数
3
解决办法
5079
查看次数