我阅读了很多文章和文档,但仍然无法完全理解不同数据类型存储在内存中的位置。
你能解释我在记忆可变字符串或任何其他可变类型的位置,例如存储var string: String
。
不可变字符串或任何其他不可变类型,例如存储了let string: String
?
你能否同时回答Swift和Objective-C?
答案 0 :(得分:0)
尤其是低级语言的编译器在编译之前需要了解类型和大小,大小未知的类型在堆中存储为可变的,例如:
var = String::from(" String_name ")
可以更改此字符串类型,而对于var = " String_name"
类型的str
则不能更改。因此,它存储在堆栈中,并且与堆中存储的堆栈不同,可以快速访问。