【发布时间】:2017-10-27 17:23:36
【问题描述】:
Swift 新手,尝试使用字符串插值打印Optional。我希望它在Optional 为空时打印nil,但也希望它在实际包含字符串/字符时正确打印它。
所以我想要完成的应该可以在这里使用:
print("The result is: \(funcToReturnOptional)")
结果要么是有价值的结果,要么是正在打印的nil。
我该怎么做?我不想强制展开,因为我希望对实际函数的一些测试返回 nil。
记录一下,函数是:
func firstNonRepeatingChar(input:String)->Character?{
//set a default return object
var result: Character? = nil
//convert input for easy and clean navigation
let converted = Array(input)
//set start of enumeration
var index: Int = 0
//set variable to compare
var c:Character
//should only trigger if non-empty input
while index<converted.count-1{
c=converted[index]
//check for non-repeated value
if !converted[index+1..<converted.count].contains(c){
result=c
return result
}
index+=1
}
return result
}
我正在尝试打印如下:
print(firstString+" should return \(firstNonRepeatingCharacter(input: firstString)??"nil")")
【问题讨论】:
-
能否分享
funcToReturnOptional相关代码 -
使用stackoverflow.com/a/46933890/1187415的扩展方法你可以做到
firstNonRepeatingChar(input: firstString).descriptionOrNil -
您的代码还有问题吗?如果是这样,错误是什么?
-
当我尝试使用 ??或 .descriptionOrNil。前者说我不能在非可选类型字符上使用可选链接。后者说 Character 没有成员“descriptionOrNil” 编辑:哦,这是一个自定义扩展。
-
@user3478947 你的 swift 版本是什么?