我正在尝试将以下Swift
代码转换为F#
:
if let type : String = UserDefaults.standard.object(forKey: "type") as? String {
if (type == "this") {
} else if (type == "that") {
}
}
我想出了这个方法,但是我不确定如何将值转换为String
并将其存储在变量中,因为所有这些代码所做的就是检查该值是否不为空。
if NSUserDefaults.StandardUserDefaults.ValueForKey(new NSString("type")) <> null then printf("fofo")
发布于 2017-12-27 13:14:37
在F#中,可以使用:>
操作符(如果转换是向上转换)或:?>
操作符(如果转换是向下转换)进行转换。它看起来像这样:
let objObject= "test" :> obj
let strObject = objObject:?> string;;
val objObject: obj = "test"
val strObject : string = "test"
转换您的使用默认值将如下所示:
let strValue = NSUserDefaults.StandardUserDefaults.ValueForKey(new NSString("type")) :?> string
如果您想要检查多个类型,那么您可能希望使用模式匹配,如下所示:
let strObject = match objObject with
| :? string as strObject -> strObject
| :? System.Int32 as intObject -> ""
https://stackoverflow.com/questions/47980409
复制