我尝试将以下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")
答案 0 :(得分:1)
在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 -> ""