Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中使用相同的变量名,但不同的数据类型_Ios_Swift_Xcode_Oop - Fatal编程技术网

Ios 如何在Swift中使用相同的变量名,但不同的数据类型

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语言中,此代码按其应该的方式运行

当我在同一个变量名中被分配了不同的值时,我得到了一个错误

这是错误:无法将“[String]”类型的值分配给“String”类型 这是代码:

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