初学者问题:Func返回字符串和数组
我正在尝试操作基本的 Swift 数据类型,并尝试为我从 Swifts 文档中练习的简单函数示例添加一个(基本)复杂层。我能够作为一个简单的数组返回,但是当我尝试在字符串中返回一个数组时,我遇到了错误。我已经阅读了所有 Swift 数组文档,尝试先解决这个问题,但没有运气。
这是我成功返回数组的代码:
func namesList(person: String) -> [(String)] {
let register = ["RoboCop", person, "Terminator"]
return register.sorted()
}
...和我不成功的代码:
func namesList(person: String) -> [(String)] {
let register = "The alphabetic order of names are (["RoboCop", person, "Terminator"])"
return register.sorted()
}
我认为问题出在我的返回参数上,但找不到返回字符串和数组的方法?
非常感谢
回答
.sorted()对 Sequence 进行操作,Array 和 String 都是 Sequences。[String].sorted(你的第一个例子)返回一个[String]. String.sorted(您的第二个示例)返回 a [Character],因为 String 由 Characters 组成。
您的第二个示例不是“嵌套在字符串中的数组”。它只是一个字符串。(...)执行字符串插值。它不嵌套任何东西。
如果要返回字符串,则需要返回字符串。
func namesList(person: String) -> String {
let register = ["RoboCop", person, "Terminator"].sorted()
return "The alphabetic order of names are (register)"
}
作为一个非常小的点,[(String)]不寻常的语法可能会让有经验的 Swift 开发人员感到困惑。写这个的正确方法是[String]没有额外的括号。