arrays - Swift:仅当数组匹配特定条件时如何执行操作?
问题描述
所以我遇到了这个问题(Swift初学者,所以你知道)并且在这里找不到解决方案:
我有一组按钮,我将其关联到array
of bools
,我们将其命名为litPad
。
基本上例如,如果button[i]
突出显示,litPad[i]
则变为true
(默认情况下,我将整体设置bool
array
为false
)。
我想要实现的是仅在以下情况下执行某些bools
操作true
:
例如 if litPad[3]
, litPad[6]
& litPad[12]
aretrue
我将执行一个动作,但这些条件必须是排他性的,这意味着如果这 3 个按钮被突出显示但任何其他按钮以及该动作都不会执行,另一个将(不同的动作,例如如果只有litPad[3]
&litPad[6]
突出显示/true
或如果litPad[3]
, litPad[6]
, litPad[12]
&litPad[19]
突出显示/ true
)。
我似乎无法正确格式化我的 if 语句以匹配我想要实现的目标。
提前致谢 !!
解决方案
您可以使用 aSet
来跟踪哪些按钮“打开”,然后switch
为各个操作构建一个语句:
var litPad = Set<Int>()
litPad = [ 1,2,5 ]
switch litPad {
case [1,2,5]: print("action 1")
case [1,2]: print("action 2")
default: ()
}
推荐阅读
- c# - 如何在 C# 中查看所选应用程序的所有注册表更改
- kotlin - Ktor - 如何在 Kotlin-Multiplatform 通用模块中使用纯 Kotlin 解码 base64 令牌?
- mysql - 如何将根 MySQL 系统用户限制为 GCP Cloud SQL 中的单个主机?
- vim - 更改文件类型上的 Vim 航空公司配色方案
- python - Mac上的Tkinter奇怪
- python - 如何在 python opencv 中设置 SIFT 直径/比例/放大镜?
- html - 您好我想知道为什么在某些宽度的屏幕中溢出是隐藏的?
- python-2.7 - 如何在 python 2.7 中将油门本身的范围从 1000 转换为 2000 到 0 到 1024?
- petitparser - 使用 petitparser 解析分隔字符串
- python - 使用 f2py 回调函数时出错