Dra*_*lex 6 variables declaration swift
我真的不知道如何在Swift中声明我的变量,我有四个选项:
var value = 0.0 // I know this one declares value as a Double with the number 0.0
var value: Float = 0.0 // This one declares value as a Float with the number 0.0
var value: Float? // I really don't get the difference between this
var value: Float! // and this, I just know that both of them are used to declare a variable without a value, am I right ?
Run Code Online (Sandbox Code Playgroud)
我只是想声明一个不归因于值的浮点数,最好的方法是什么?
这Float?
是一个可选的。是Float!
一个隐式展开的可选项。有关后者的详细信息,请参阅《Swift 编程语言:基础知识》的隐式解包选项部分,其中显示:
\n\n[Optionals] 表示常量或变量允许有\xe2\x80\x9cno 值\xe2\x80\x9d。可以使用 if 语句检查可选值以查看值是否存在,并且可以使用可选绑定有条件地解包以访问可选\xe2\x80\x99s 值(如果存在)。
\n有时,从 program\xe2\x80\x99s 结构中可以清楚地看出,在首次设置该值之后,可选值将始终具有一个值。在这些情况下,无需在每次访问可选\xe2\x80\x99s 值时检查和解开该值,因为可以安全地假定它始终具有值。
\n这些类型的选项被定义为隐式展开的选项。您可以通过在要设为可选的类型后面放置感叹号 (String!) 而不是问号 (String?) 来编写隐式展开的可选类型。
\n当首次定义可选值后立即确认可选\xe2\x80\x99s 值存在并且可以肯定地假定此后的每个点都存在时,隐式解包可选值非常有用。Swift 中隐式解包选项的主要用途是在类初始化期间,如无主引用和隐式解包可选属性中所述。
\n隐式解包的可选值是幕后的普通可选值,但也可以像非可选值一样使用,而无需在每次访问可选值时解包。
\n
您描述这value
将是一个类属性。如果这是Float
您始终在init
方法中设置的,那么您根本不需要将其设为可选,因此您可以使用第二种语法。如果它是一个在任何时候都可能是nil
或不是的变量nil
,那么您可以将其设为可选(您的第三种语法)。但是,如果它是一个您无法在 中 设置的变量init
,但是一旦您设置了它,从那时起它通常总是有一个值,您可能会倾向于隐式展开的可选(您的第四种语法)。
归档时间: |
|
查看次数: |
15571 次 |
最近记录: |