这是来自swift编程语言 ibook 的代码示例:
class Product {
let name: String!
init?(name:String) {
if name.isEmpty { return nil }
self.name = name
}
}
Run Code Online (Sandbox Code Playgroud)
除非将name声明为变量而不是常量,否则它不起作用.是否已经在Swift 1.2中引入了有关此问题的更改,我不知道?
我是Common Lisp的初学者,遇到了这段代码:
(let ((foo (list 42)))
(setf (rest foo) foo))
Run Code Online (Sandbox Code Playgroud)
在尝试执行它时,REPL似乎永远循环.
根据apple发布的swift编程语言(Swift 3.0.1) iBook,比较运算符也适用于元组,只要它们不包含布尔值.所以给出以下声明
let t1 = (1, true)
let t2 = (1, true)
Run Code Online (Sandbox Code Playgroud)
以下句子按预期抛出错误
t1 <= t2
Run Code Online (Sandbox Code Playgroud)
然而
y1 == t2
Run Code Online (Sandbox Code Playgroud)
评估为真,这似乎与上述说法相矛盾.有任何想法吗?