swift – 如何在运行时将StaticString转换为String?

swift – 如何在运行时将StaticString转换为String?,第1张

概述在 Swift 3中,以下转换是从StaticString创建String的正确方法吗? let fileName : StaticString = #filelet currentFile : String = file.description 不,这不是将StaticString转换为String的正确方法; description返回的值是一个实现细节. 获取String的最简单方法是不要 在 Swift 3中,以下转换是从StaticString创建String的正确方法吗?

let filename : StaticString = #filelet currentfile : String = file.description
解决方法 不,这不是将StaticString转换为String的正确方法; description返回的值是一个实现细节.

获取String的最简单方法是不要向filename添加显式类型注释;因为它默认为String:

let filename = #fileprint(type(of: filename)) // String

但是,假设在实际使用情况下这是不可能的,另一个选择是使用StaticString的withUTF8Buffer(_:)方法以及String的init(decoding:as:)初始化器来解码静态字符串的UTF-8代码单元:

let filename: StaticString = #filelet currentfile = filename.withUTF8Buffer {    String(deCoding: 
extension String {    init(_ staticString: StaticString) {        self = staticString.withUTF8Buffer {            String(deCoding: ,as: UTF8.self)        }    }}let filename: StaticString = #filelet currentfile = String(filename)print(currentfile)
,as: UTF8.self)}print(currentfile)

当然,您可以为此创建自己的便利初始化程序:

但这种转换真的不应该经常出现.

总结

以上是内存溢出为你收集整理的swift – 如何在运行时将StaticString转换为String?全部内容,希望文章能够帮你解决swift – 如何在运行时将StaticString转换为String?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1005734.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存