2017-08-16 82 views
1

我搜索了這個,但我找不到答案。原始類型的內存分配

var x : Int

還是我們也必須初始化它爲這個變量分配內存:

是,當我們宣佈這樣一個變量的內存分配進行的?

+0

在調用init函數或實例化文字時分配內存。 –

回答

1

這一切都取決於如何聲明屬性。它也可以是依賴於實現的,或者針對其他行爲進行優化的。

The Swift Programming Language (Swift 4) Properties

一般而言,存儲屬性早期分配的。立即或在使用之前的某個時間。惰性屬性在訪問時被分配。計算屬性從不分配,它們在訪問時計算。

在您的示例中,變量已聲明但尚未初始化或分配。如果您嘗試使用它,而不將其設置爲一個值,你會得到從編譯器這樣的說法:

變量「X」一旦你分配一個值給它,然後它被初始化

前使用將被分配:

var x: Int // declared but not allocated or initialized 
x = 10  // allocated and initialized 

如果是,那麼整個結構得到一次分配struct的一部分。方法init負責初始化內存。