因此,我坚持这样做,因为大多数内部Swift程序不再起作用,并且仍在学习中。我已经尝试了很多东西,但仍然无法正常工作。
我尝试了内部功能。我尝试了自定义方法。我尝试将它们放入扩展中(与自定义方法相同,但我想练习扩展。)
extension Character {
var isVowel: Bool {
let vowels: [Character] = ["a", "e", "i", "o", "u"]
return vowels.contains(self)
}
}
extension String{
func transform (_ function: (String) -> String) -> String{
return function(self)
}
func toCharacter() -> [Character]{
var working = self.components(separatedBy: "")
var output: [Character] = []
for i in 0...working.count{
output.append(Character(working[i]))
}
return output
}
}
func toString(from input: [Character]) -> String{
var output = ""
for i in input{
output += String(i)
}
return output
}
func removeVowels(from given: String) -> String{
var working = given.toCharacter()
for i in 0...working.count{
if working[i].isVowel{
working.remove(at: i)
}
}
return toString(from: working)
}
在String类型的扩展中,声明一个名为transform的函数。该函数应接受(String)-> String类型的另一个函数作为参数。对于此参数,我们省略外部标签。转换函数还应该返回一个字符串。
创建一个名为removeVowels的函数,该函数接受一个字符串并返回一个字符串。为参数from命名外部参数标签。在方法的主体中,返回一个新的String文字,其中从作为参数传递的值中删除了元音(英语)。
答案 0 :(得分:0)
除了推荐SwifterSwift之外,因为他们已经实现了该扩展以及许多其他有用的扩展,这就是他们的implementation。
slf4j-simple
要这样使用:
java -classpath ./lib/* YourProgram