相关疑难解决方法(0)

Swift语言中的感叹号是什么意思?

Swift编程语言指南有以下示例:

class Person {
    let name: String
    init(name: String) { self.name = name }
    var apartment: Apartment?
    deinit { println("\(name) is being deinitialized") }
}

class Apartment {
    let number: Int
    init(number: Int) { self.number = number }
    var tenant: Person?
    deinit { println("Apartment #\(number) is being deinitialized") }
}

var john: Person?
var number73: Apartment?

john = Person(name: "John Appleseed")
number73 = Apartment(number: 73)

//From Apple's “The Swift Programming Language” guide (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)
Run Code Online (Sandbox Code Playgroud)

然后,当将公寓分配给该人时,他们使用感叹号来"解开实例":

john!.apartment = number73
Run Code Online (Sandbox Code Playgroud)

"打开实例"是什么意思?为什么有必要?它与仅执行以下操作有何不同:

john.apartment …
Run Code Online (Sandbox Code Playgroud)

optional swift forced-unwrapping

513
推荐指数
9
解决办法
14万
查看次数

Swift中的可选值是什么?

来自Apple的文档:

您可以使用iflet一起处理可能缺少的值.这些值表示为选项.可选值包含值或包含nil以指示缺少值.?在值的类型后面写一个问号()以将值标记为可选.

为什么要使用可选值?

optional swift

258
推荐指数
6
解决办法
13万
查看次数

Swift Optionals

有人可以解释我下面的代码(出现在Apple的Swift书的第11页):

var optionalString: String? = "Hello"
optionalString = nil

var optionalName: String? = "Einav Sitton"
var greeting = "HELLO!"

if let name = optionalName {
    greeting = "Hello, \(name)"
}
Run Code Online (Sandbox Code Playgroud)

optional swift

3
推荐指数
1
解决办法
6327
查看次数

标签 统计

optional ×3

swift ×3

forced-unwrapping ×1