2017-01-21 17 views
2

文字列値の表示順序を逆にする次の関数があります。 私はSwiftには新しく、その論理を理解しようとしています。 '!pleh'の値が「ヘルプ」に変わることは何ですか? ? おかげ文字列値の順序を逆にする

func reverse(_ s: String) -> String { 
var str = "" 
for character in s.characters { 
    str = "\(character)" + str 
} 
return str 
} 
print (reverse("!pleH")) 
+0

'印刷を行って取得します。関数を実演するだけで、実際に文字列を逆にすることは重要ではありません。 – toddg

答えて

2

をコメントにそれを使用することができますインライン、

直接文字列に reversedを呼び出す迅速4.0では
3

機能reversed(_:)与えられた文字列s内の各Characterを反復処理し、単純に逆の順序でそれらをconcenates。

// 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) 

Aはるかに簡単なアプローチは、StringインスタンスのCharacterViewreversed()を使用することになります。

let str = "!pleH" 
print(String(str.characters.reversed())) // Help! 

スウィフト4はあなたの文字列に直接

let str = "!pleH" 
print(String(str.reversed())) // Help! 
+0

うわー私はそれを決して見ていない...クイック返信ありがとう、これはコード作成の方法を学ぶ私の最初の週です! –

+1

@Leo、あなたはこの解決策にその解決法を追加することによってFangmingの答えを冗長にしました。 –

+1

@WiktorStribiżew彼の答えはまた、この答えの単なるコメントかもしれない –

5

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")) 
は、ジョブは(( "!pleHを" 逆方向)) `ステートメントを` reverse`機能の一部ではありません

let str = "abc" 
String(str.reversed()) // This will give you cba 
関連する問題