gpt4 book ai didi

swift - 为什么 Swift 中不需要 "new"关键字?

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:43 26 4
gpt4 key购买 nike

为什么 new 关键字在 Swift 中不是必需的?

在其他语言如 Java 或 C# 中,new 是为每个新对象分配内存所必需的。例如。

(Foo) foo = new Foo()

但是在swift中,它是

(var) foo = Foo()

如果 Swift 内置了垃圾收集/内存分配,new 是隐含的,还是根本没有使用。如果是后者,为什么/用什么取代它?

最佳答案

new 只是一种语言结构,表示我要初始化并创建一个新的 Foo。如果编译器足够聪明,可以根据上下文确定这就是您想要执行的操作,那么为什么要冗长呢?底线是:

[[Foo alloc] init] - Objective C
[Foo new] - Objective C
new Foo() - C/C++/Java
Foo() - Swift

另请注意,在 C++ 中,您可以使用以下内容生成基于堆栈的对象:

Foo foo();

ARC、引用计数、垃圾收集、显式删除,都只是用于回收不再需要的对象使用的内存的机制,实际上与创建对象所需的语言语法没有任何关系。

不要拘泥于语法,学习识别结构和操作,然后将语法附加到结构上,您就已经掌握了每种编程语言的 90%。

关于swift - 为什么 Swift 中不需要 "new"关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com