数组 – 如何判断变量是否是数组

数组 – 如何判断变量是否是数组,第1张

概述我有一个接受Any的 Swift函数,我希望它可以接受一个字符串数组,一个Ints数组,一个混合数组或数组数组等.它也可以接受一个String或一个Int,等等,不在数组中. 所以我有这个: private func parse(parameter: Any) { if parameter is Int { // Int } else if 我有一个接受Any的 Swift函数,我希望它可以接受一个字符串数组,一个Ints数组,一个混合数组或数组数组等.它也可以接受一个String或一个Int,等等,不在数组中.

所以我有这个:

private func parse(parameter: Any) {        if parameter is Int {            // Int        } else if (parameter is float) || (parameter is Double) {            // Double        } else if parameter is String {            // String        } else if parameter is Bool {            // Bool        } else if let array = parameter as? [Any] {            // Should catch all Arrays        } else {            assert(false,"Unsupported type") // [String] ends up here        }    }

但是如果我调用parse([“Strings”]),则提出该断言.如何捕获所有类型的数组?

编辑 – 有什么我想要完成的一些混乱.我基本上需要返回一个基于类型的String,所以Int – > “”和String – > “”,所以一个数组将进行递归调用返回“…”

这个帖子被标记为重复,但另一个问题是关于JavaScript,而不是Swift.

我终于找到了这样做,那就是使用NSArray进行投射.
private func parse(x: Any) {    if let o = x as? [Any] {        println("[Any]")    }    if let o = x as? [AnyObject] {        println("[AnyObject]")    }    if let o = x as? NSArray {        println("NSArray")    }}let a: [Any] = ["bar"]let b: [AnyObject] = ["bar"]let c = ["foo",3.14]parse(a) // ==> [Any]parse(b) // ==> [AnyObject],and also NSArrayparse(c) // ==> NSArray

它看起来是一个包含NSArray内部表示的Any的数组.(但是应该能够将c转换为[Any] …?我怀疑这是一个错误.)

总结

以上是内存溢出为你收集整理的数组 – 如何判断变量是否是数组全部内容,希望文章能够帮你解决数组 – 如何判断变量是否是数组所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存