在以前的swift版本中,以下代码起作用。
let letterString = String( UnicodeScalar( 97 ) )
print( letterString )
返回“a”
升级到swift 3后,它建议我改为
let letterString = String( describing: UnicodeScalar( 97 ) )
print( letterString )
返回可选(“a”)
好的,所以我试着加了!操作员打开但不起作用。
let letterString = String( describing: UnicodeScalar( 97 ) )
print( letterString! )
给出错误:无法强制非可选类型“string”的展开值
有人能告诉我这里发生了什么事吗?如何从swift 3中的ascii值获取未包装的字符串值?
最佳答案
不是可选的String
实例。它是UnicodeScalar
结构。所以你必须打开那个:
let letterString = String(describing: UnicodeScalar(97)!)
print(letterString)
另一种方法是使用
UnicodeScalar
的其他初始值设定项。那你根本不需要打开它。let letterString2 = String(describing: UnicodeScalar(UInt8(97)))
print(letterString)