Ios 如何在Swift中使用相同的变量名,但不同的数据类型
当我在同一个变量名中被分配了不同的值时,我得到了一个错误 这是错误:无法将“[String]”类型的值分配给“String”类型 这是代码:Ios 如何在Swift中使用相同的变量名,但不同的数据类型,ios,swift,xcode,oop,Ios,Swift,Xcode,Oop,当我在同一个变量名中被分配了不同的值时,我得到了一个错误 这是错误:无法将“[String]”类型的值分配给“String”类型 这是代码: var data: String data = "datas|datas" data = data.components(separatedBy: "|") as! [String] debugPrint(data.first!) 或者,这适用于代码类型中的图像: 我认为PHP语言比Swift语言更简单。因为,在PHP语言中,此代码按其应该的方式运行
var data: String
data = "datas|datas"
data = data.components(separatedBy: "|") as! [String]
debugPrint(data.first!)
或者,这适用于代码类型中的图像:
我认为PHP语言比Swift语言更简单。因为,在PHP语言中,此代码按其应该的方式运行
希望有人帮帮我不你不能
let other = data.components(separatedBy: "|") as! [String]
您必须一次将变量设置为仅1种类型,将
类型的数据
转换为任何
都可以,但您必须转换我建议始终使用字符串数组:
var data: [String]
data = ["datas|datas"]
data = data.flatMap { $0.components(separatedBy: "|") }
debugPrint(data.first!)
所以,没有办法解决这个问题?。我的意思是,我只想对数据使用相同的变量,比如PHP语言:(在swift中,同一个变量一次不能有很多类型,除非它是任何类型,更糟糕。我明白了。谢谢你的解释,先生!@HabieSmart你应该试着理解为什么swift禁止这一点。通过禁止这一点,它鼓励你给变量提供更有意义的名称。例如,在这种情况下,unsplit和t拆分字符串称为data
。但是,如果您调用拆分字符串splitData
(或任何适合您的上下文),只需读取变量名,就可以非常清楚地知道您在做什么。PHP只创建具有新类型的新变量,Swift-不是。只创建具有正确类型的变量。data.components(以“|”分隔)
已返回[String]
,不需要强制转换。您无法将其分配给String