lyricsForName
関数は何も印刷しません。 shortNameFromName
が機能し、2番目の機能に何が問題なのかを確認しました。lyricsForName関数は何も印刷しません
func shortNameFromName(name : String) ->String{
var shortName = ""
let lowercaseNmae = name.lowercased()
let vowelSet = CharacterSet(charactersIn: "aeiou")
if let range = lowercaseNmae.rangeOfCharacter(from: vowelSet, options: String.CompareOptions.caseInsensitive)
{
shortName = name.substring(from: range.lowerBound)
}
return shortName
}
func lyricsForName(lyricsTemplate : String , fullName : String) ->String{
let bananaFanaTemplate = ["<FULL_NAME>, <FULL_NAME>, Bo B<SHORT_NAME",
"Banana Fana Fo F<SHORT_NAME>",
"Me My Mo M<SHORT_NAME>",
"<FULL_NAME>"].joined(separator: "\n")
let shortName = shortNameFromName(name: fullName)
let lyrics = lyricsTemplate
.replacingOccurrences(of: "<FULL_NAME>", with: fullName)
.replacingOccurrences(of: "<SHORT_NAME>", with: shortName)
print(lyricsForName(lyricsTemplate:bananaFanaTemplate , fullName: "vishnu"))
return lyrics
}
第1の機能は完全に機能しますが、第2の機能は正しく動作していないようです。それを機能させるために私は何をすべきですか?
あなたの関数は再帰的であると考えられます(あなたは関数宣言内からlyricsForNameを呼び出しています)?代わりに歌詞を印刷するとどうなりますか? – Sparky
再帰的ではないと思われる – vishnu
私はこの機能を外部に持っていましたが、\ n、歌詞を印刷しようとすると同じ結果しか表示しません – vishnu