gpt4 book ai didi

ios - 为什么我需要在 Swift 的类中指定变量的类型?

转载 作者:可可西里 更新时间:2023-10-31 23:52:54 24 4
gpt4 key购买 nike

我只是想知道。据我所知,varlet 可以是任何东西,Swift 会像 JavaScript 一样自动执行正确的类型。但是,当我尝试在类中设置属性时,如果没有指定类型,则会出现错误。

var value1, value2 // Error: missing annotations

好吧,我已经阅读了一些引用资料,变量需要类型声明,如 var foo = 0。但是在我的类(class)中,我有一个 init(),它将变量设置为我在创建类(class)对象时输入的任何内容。

那么我该如何实现呢?有可能吗?

我看到了 typealias 类型,但它也不起作用。

最佳答案

虽然 Swift 和 Javascript 都允许您在不定义变量类型的情况下将常量分配给变量,但这两种语言存在根本差异。 Swift 是一种强类型、类型安全的语言,而 Javascript 则不是。来自 Swift 编程语言 -

“Swift is a type safe language. A type safe language encourages you to be clear about the types of values your code can work with. If part of your code expects a String, you can’t pass it an Int by mistake.”

Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks. https://itunes.apple.com/au/book/swift-programming-language/id881256329?mt=11

所以当你说

var welcomeMessage = "Hello" 

Swift 推断您希望 welcomeMessage 是一个字符串并相应地设置它的类型。随后尝试

welcomeMessage=3

会给运行一个编译时错误,因为你分配了不正确的类型。

如果您不分配初始值,则 Swift 无法推断类型,您必须指定它。

另一方面,Javascript 会很乐意接受

var welcomeMessage="Hello"
welcomeMessage=3

因为它不是类型安全的,只是试图用它拥有的值来做最好的事情。比如给welcomeMessage赋值3后进行字符串操作,Javascript会将其值转为“3”再进行操作。

虽然 Javascript 有类型安全的扩展,但它并不是语言的基础部分,就像 Swift 一样

关于ios - 为什么我需要在 Swift 的类中指定变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24006573/

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