使用Swift,来自Java背景,为什么要选择Struct而不是Class?看起来它们是相同的,使用Struct提供更少的功能.为什么选择呢?
由于结构是值类型,因此在将数据作为参数传递给方法时会复制它们的数据.例:
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个字段创建一个结构 - 这只是一个基本的内部和内部等问题: )