ios - Swift:在两个可选值之间切换
问题描述
我正在尝试实现两个选项值之间的切换:
import UIKit
var numOne: Int?
var numTwo: Int?
func doSomething() {
switch (numOne, numTwo) {
case (!nil, nil):
print("something")
case (_ == _):
print("equal")
default:
break
}
}
doSomething()
但我收到了这个错误:
在第一种情况下,我收到此错误:
'nil' is not compatible with expected argument type 'Bool'
在第二种情况下,我收到了另一个错误:
Expression pattern of type 'Bool' cannot match values of type '(Int?, Int?)'
我对你们的问题是,我怎样才能设法生成这与可选值之间的案例?
我会非常感谢你的帮助
解决方案
这里没有错;语法不正确。
对于第一种情况,您的意思是:
case (.some, .none):
没有这样的事情!nil
。可选项不是布尔值。你也可以写(.some, nil)
因为nil
是 的别名.none
,但这让人感到困惑。
对于第二种情况,您的意思是:
case _ where numOne == numTwo:
这里的重点是您的意思_
是条件为真( )的所有情况( where ...
)。
func doSomething() {
switch (numOne, numTwo) {
case (.some, .none):
print("something")
case _ where numOne == numTwo:
print("equal")
default:
break
}
}
推荐阅读
- php - 在'use' php 子句中找不到类
- newline - Add a line break every fix number of byte
- asp.net-core - Docusign - 在单个文档中具有多个收件人的嵌入式签名 - ASP.Net Core
- c++ - SFML Detect multiple connections to server and count them
- javascript - Function passed to video.addEventListener("play") event is undefined
- python - 如何在 Pika RabbitMQ 中获取所有待处理任务并清除队列
- javascript - 验证 moveToElement 或 clickandHold 是否正常工作
- c# - 如何对 startup.cs .Net Core 进行单元测试
- delphi - Delphi - In which Uses Clause is 'Self' defined?
- css - svg filter shadow path repair