Yiu*_*ong 9 function character swift
我有以下功能,它反转字符串值的显示顺序.我是Swift的新手,我试图理解它的逻辑.'!pleh'值的变化是什么变成了'帮助!' ?谢谢
func reverse(_ s: String) -> String {
var str = ""
for character in s.characters {
str = "\(character)" + str
}
return str
}
print (reverse("!pleH"))
Run Code Online (Sandbox Code Playgroud)
Fan*_*ing 14
在swift 4.0中,直接调用reversed字符串将完成工作
let str = "abc"
String(str.reversed()) // This will give you cba
Run Code Online (Sandbox Code Playgroud)
该函数reversed(_:)迭代Character所提供的字符串中的每一个s,并以相反的顺序简单地将它们集中在一起.
// 1st pass in the 'for' loop:
// @ start of iteration: 'str' equals ""
// update value of 'str' according to
// str = aCharacterAsString + str = "!" + ""
// 2nd pass in the 'for' loop:
// @ start of iteration: str equals "!"
// update value of 'str' according to
// str = anotherCharacterAsString + str = "p" + "!"
// 3rd pass in the 'for' loop:
// @ start of iteration: str equals "p!"
// update value of 'str' according to
// str = yetAnotherCharacterAsString + str = "l" + "p!"
// and so on ...
// after end of 'for' loop: str == "help!"
// this value of 'str' is then return to callee (which prints it)
Run Code Online (Sandbox Code Playgroud)
一个更简单的方法是使用reversed()在CharacterView对的String实例:
let str = "!pleH"
print(String(str.characters.reversed())) // Help!
Run Code Online (Sandbox Code Playgroud)
Swift 4您可以直接在字符串中使用它
let str = "!pleH"
print(String(str.reversed())) // Help!
Run Code Online (Sandbox Code Playgroud)
内联注释,
func reverse(_ s: String) -> String {
var str = ""
//.characters gives the character view of the string passed. You can think of it as array of characters.
for character in s.characters {
str = "\(character)" + str
//This will help you understand the logic.
//!+""
//p+!
//l+p! ... goes this way
print ( str)
}
return str
}
print (reverse("!pleH"))
Run Code Online (Sandbox Code Playgroud)
注意:如果您不想使用reversed()内置功能,则可以使用以下代码。[面试要求]
在字符串上使用高阶函数“ Reduce ” 的一线。
extension String {
func reverse() -> String { return self.reduce("") { "\($1)" + $0 } }
}
Run Code Online (Sandbox Code Playgroud)
var string = "My,playground and my Swift"
var reverseString = ""
for str in string {
reverseString.insert(str, at: reverseString.startIndex)
}
print(reverseString)
Run Code Online (Sandbox Code Playgroud)