数组 – 有没有办法在Swift中重写数组到字符串的转换?

数组 – 有没有办法在Swift中重写数组到字符串的转换?,第1张

概述我正在玩 Swift试图让它看起来更“动态打字” – 只是为了好玩,没有预期的产值. 现在我陷入了将内置类型转换为String的覆盖行为. 例如,我想看看Array的这个输出: let nums = [1, 2, 3]print(nums) // "I'm an array" 到目前为止,我试过 >对NSArray进行扩展(不编译) >实现CustomStringConvertible(不编译) 我正在玩 Swift试图让它看起来更“动态打字” – 只是为了好玩,没有预期的产值.

现在我陷入了将内置类型转换为String的覆盖行为.

例如,我想看看Array的这个输出:

let nums = [1,2,3]print(nums) // "I'm an array"

到目前为止,我试过

>对NSArray进行扩展(不编译)
>实现customstringconvertible(不编译)
>对Array进行扩展(编译,不做任何更改)

好像我走错了路:

extension Array {    public var description: String { return "An array" }}

至少在Swift中是否可行?

有任何想法吗?

这不起作用,因为Array覆盖了描述.如果数组没有覆盖它,那么它将打印“一个数组”.类方法’胜过’扩展名.
extension Array {    public var description: String { return "An array" }}

您可以为数组创建一个Wrapper类.这是一种解决方法,但不会覆盖数组的描述本身.

class ArrayWrapper<T> : customstringconvertible{    var array : Array<T> = Array<T>()    var description: String { return "An array" }}

然后你可以像这样使用它.

var array = ArrayWrapper<Int>()array.array = [1,3]print(array) //prints "An Array"print(array.array) //still prints "[1,3]"
总结

以上是内存溢出为你收集整理的数组 – 有没有办法在Swift中重写数组到字符串的转换?全部内容,希望文章能够帮你解决数组 – 有没有办法在Swift中重写数组到字符串的转换?所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1089322.html

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

发表评论

登录后才能评论

评论列表(0条)

保存