我是Swift的新手并试图弄清楚Optional的概念.我在Playground中有一小段代码,它给了我"条件中的变量绑定需要初始化程序"错误.有人可以解释为什么以及如何解决它?
我只想打印"是"或"否",具体取决于"score1"是否有值.这是代码:
import Cocoa
class Person {
var score1: Int? = 9
func sum() {
if let score1 {
print("yes")
} else {
print("No")
}
}//end sum
}// end person
var objperson = person()
objperson.sum()
Run Code Online (Sandbox Code Playgroud)
Lor*_*aef 13
if let语句采用可选变量.如果是nil,则执行else块或不执行任何操作.如果它具有值,则将该值作为非可选类型分配给另一个变量.
因此,如果没有,则以下代码将输出score1的值或"No":
if let score1Unwrapped = score1
{
print(score1Unwrapped)
}
else
{
print("No")
}
Run Code Online (Sandbox Code Playgroud)
较短版本的是:
print(score1 ?? "No")
Run Code Online (Sandbox Code Playgroud)
在您的情况下,如果您实际上没有使用存储在可选变量中的值,您还可以检查值是否为nil:
if score1 != nil {
...
}
Run Code Online (Sandbox Code Playgroud)
写作
if let score1 {
Run Code Online (Sandbox Code Playgroud)
没有意义.如果您想查看得分是否有值,请使用
if score1 != nil {
Run Code Online (Sandbox Code Playgroud)
要么
if let score = score1 {
Run Code Online (Sandbox Code Playgroud)
最后一种情况将新的非可选常量绑定score到score1.这使您可以score在if语句中使用.
| 归档时间: |
|
| 查看次数: |
17648 次 |
| 最近记录: |