天天看點

d何時棧上配置設定

​​原文​​

問題是何時配置設定​

​[1,2,3]​

​​到​

​棧​

​​上,何時配置設定到​

​GC​

​​堆上?

要點:

​​

​1​

​​.在C中,它是在​

​棧​

​​上配置設定的.​

​D​

​​配置設定其到​

​堆​

​​,這裡有點令人驚訝,盡管D在​

​C之前​

​​就有這樣的​

​字面​

​​

​2​

​.在​

​堆​

​上配置設定表明它在​

​@nogc​

​代碼中​

​不可用​

​.

​3​

​.編寫​

​表達式​

​時,​

​放在棧上​

​的唯一方法是給它​

​指派​

​不友善又低效的​

​域變量​

​.

​4​

​.它違背了​

​簡單​

​代碼應比​

​複雜​

​代碼更有效的想法

是以,我提出以下建議:

​[1,2,3]​

​始終在​

​棧​

​上配置設定

​[1,2,3].dup​

​始終在​

​堆​

​上配置設定

且是以​

​行為​

​不依賴于​

​推導​

​.

不要!可顯式​

​請求​

​在棧上配置設定:

int[3] = [1, 2, 3];      

問題是它的​

​重複性​

​.以前已提出過,隻需要:

int[$] = [1, 2, 3];