如何在Swift中使用带隐式/强制展开的移位运算符

问题描述 投票:0回答:1

我一直在尝试使用移位运算符并在一段代码中展开,因为我正在学习Swift(仅供参考,我是初学者),所以我正在尝试多种方法,但我仍然坚持使用此运算符。看看关于移位运算符的不同线程,我得出结论,我可能不得不重载我的操作数然后相应地使用它们。

我的代码:

var p : Int! 
p = 24 >> 2;
if let msg = p{ print (msg); } 
else { print("abcd"); }

请帮忙!如果我的想法是正确的,也建议。

我想要实现的是两者都可以一起工作..如果有任何方法适用... xD

swift swift4 swift-playground swift4.2 swift4.1
1个回答
0
投票

如果我正确地理解了这个问题,这是一个误解,与使用选项和移位运算符无关

如果你想使用语法if let x = y {那么只有当y被声明为可选时才允许这个,因为如果y永远不是nil,那么代码是没有意义的,因为那时你可以安全地直接使用y

说到移位运算符,那么就我所知,这两个值都不是可选的,所以你的例子有点人为。

var y: Int?

if someCondition {
    y = 42
}

if let x = y {
   doStuff(x)
}  else {
    print("y was never set")
}

或以默认值展开

var y: Int?

let x = (y ?? 0) + 42
© www.soinside.com 2019 - 2024. All rights reserved.