Swift-无法分配类型为';[字符串]';输入';字符串';(Swift 4)
在最后一行,它给出了错误“无法将“[String]”类型的值赋给“String”类型,我是Swift的初学者,我尝试了很多东西,但无法解决这个问题Swift-无法分配类型为';[字符串]';输入';字符串';(Swift 4),swift,Swift,在最后一行,它给出了错误“无法将“[String]”类型的值赋给“String”类型,我是Swift的初学者,我尝试了很多东西,但无法解决这个问题 func shortNameFromName (_ fullName: String) -> String{ var lowerCasedName = fullName.lowercased() var shortName = lowerCasedName.components(separatedBy: " ") ret
func shortNameFromName (_ fullName: String) -> String{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
您的函数试图返回一个
字符串
,但实际尝试返回的值是一个[String]
只需将其更改为:
func shortNameFromName (_ fullName: String) -> [String] {
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
或者,如果只想返回单个字符串值,则执行此操作以从字符串数组(或要返回的任何字符串)返回第一个对象
[0]
表示您希望通过其索引从数组返回哪个字符串您的函数正在尝试返回一个字符串
,但实际尝试返回的值是一个[string]
只需将其更改为:
func shortNameFromName (_ fullName: String) -> [String] {
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
或者,如果只想返回单个字符串值,则执行此操作以从字符串数组(或要返回的任何字符串)返回第一个对象
[0]
表示要通过数组的索引从数组中返回的字符串引用Apple文档:
组件(由以下内容分隔):
返回一个数组,该数组包含接收器中已被给定分隔符分割的子字符串
脱毛:
func组件(由分隔符分隔:字符串)->[字符串]
所以你的函数应该是这样的:
func shortNameFromName (_ fullName: String) -> [String] {
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
引用苹果文档: 组件(由以下内容分隔): 返回包含从接收器中包含被给定分隔符分隔的子字符串的数组 脱毛: func组件(由分隔符分隔:字符串)->[字符串] 所以你的函数应该是这样的:
func shortNameFromName (_ fullName: String) -> [String] {
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
方法
组件(separatedBy:)
返回一个字符串数组[string]
函数的返回类型是String
,而不是[String]
因此,根据您的需求,有两种解决问题的方法
1。使用[String]作为函数的返回类型,即
func shortNameFromName (_ fullName: String) -> [String]
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
func shortNameFromName (_ fullName: String) -> String
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName.first! //Make sure shortName is not empty before force unwrapping it
}
2。从shortName数组返回特定值,即
func shortNameFromName (_ fullName: String) -> [String]
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
func shortNameFromName (_ fullName: String) -> String
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName.first! //Make sure shortName is not empty before force unwrapping it
}
方法组件(separatedBy:)
返回一个字符串数组[string]
函数的返回类型是String
,而不是[String]
因此,根据您的需求,有两种解决问题的方法
1。使用[String]作为函数的返回类型,即
func shortNameFromName (_ fullName: String) -> [String]
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
func shortNameFromName (_ fullName: String) -> String
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName.first! //Make sure shortName is not empty before force unwrapping it
}
2。从shortName数组返回特定值,即
func shortNameFromName (_ fullName: String) -> [String]
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName
}
func shortNameFromName (_ fullName: String) -> String
{
var lowerCasedName = fullName.lowercased()
var shortName = lowerCasedName.components(separatedBy: " ")
return shortName.first! //Make sure shortName is not empty before force unwrapping it
}