Я пытаюсь создать форму, в которой будет что-то набирать (str), TextField для ввода и какой-то текст ниже (var = правильное), чтобы сообщить мне, если у меня есть правильное до сих пор.
Например, (str) = "hello world", если "hel" находится в текстовом поле, текст ниже будет иметь значение "True". Проблема в том, что я не могу правильно использовать (str) и (field). Мне кажется, что подобные вопросы здесь решаются с помощью 'lazy', но это не сработает, потому что ("свойство 'field' с оберткой также не может быть lazy").
func stringSlice(string: String, first: Int, last: Int)->String{
var newStr = ""
for number in 0..<string.count{
if first <= number{
if number <= last{
newStr += "\(string[string.index(string.startIndex, offsetBy: number)])"
}
}
}
return newStr
}
func checkSoFar(answer: String, guess: String)->String{
if stringSlice(string: answer, first: 0, last: guess.count) == guess{
return "True"
}
return "False"
}
struct thisView: View{
var str = "Hello world!"
@State private var field = ""
@State private var correct = checkSoFar(answer: str, guess: field)
var body: some View{
Form{
Text(self.str)
TextField("Type the above", text: $field){
}
Text(correct)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
thisView()
}
}
Любые идеи будут с благодарностью. Спасибо.