我有一个简单的switch语句,但实际上并不简单。
switch(bubble?.name){ //bubble is SKPhysicsBody
case "largeBubble": // <= error
newBubbleSize = "medium"
break;
default:
newBubbleSize = "large"
break;
}
在这里,我遇到了标题中提到的错误:二元运算符“〜=”不能应用于类型为'String'和'String?'的操作数
。而且我不知道为什么其中一个是可选项就会出现问题。
switch(bubble?.name ?? "unknown") { ... }
。 - Martin Rbubble!.name
没有起作用 - 只有与some()
结合使用才有效。认为这就是为什么总会有一个默认值...如果名称没有设置的话。 - Jurikbubble
是什么类型?(SKPhysicsBody
还是SKPhysicsBody?
或者是!
) - jtbandesSKPhysicsContact
ﻟ٨ﺝﻫﻸ▒bodyA
ﻧ┤≈bodyB
ﻛ°∙ - JurikbodyA
和bodyB
均为SKPhysicsNode!
。虽然我不是100%确定,但我怀疑它们永远不会为空,因此直接使用bubble.name
是安全的解决方案。这是我推荐的解决方法。 - jtbandes