Swift: Невозможно определить тип возврата сложного замыкания; добавить явный тип для устранения неоднозначности - PullRequest
1 голос
/ 12 марта 2020
struct _9table: View {
    let digits: [Int] = [1,2,3,4,5,6,7,8,9]

    var body: some View {
        VStack{
            ForEach(self.digits, id: \.self) { first in
                ForEach(self.digits, id: \.self) { second in
                    if second > first {
                        Text("\(first)+\(second)=\(first+second)")
                    }
                }
            }
        }
    }
}

Ответы [ 2 ]

1 голос
/ 12 марта 2020

В соответствии с ошибкой вам нужно помочь компилятору выяснить тип возвращаемого значения, поэтому сделайте second -> Text? in вместо second in Попробуйте

struct _9table: View {
    let digits = (1...9)
    var body: some View {
        VStack{
            ForEach(self.digits, id: \.self) { first in
                ForEach(self.digits, id: \.self) { second -> Text? in
                    if second > first {
                        return Text("\(first)+\(second)=\(first+second)")
                    }
                    return nil
                }
            }
        }
    }
}
0 голосов
/ 13 марта 2020

после смотрите другой ответ. Добавить группу было хорошо

struct _9table: View {
let digits = (1...9)
var body: some View {
    VStack{
        ForEach(self.digits, id: \.self) { first in
            ForEach(self.digits, id: \.self) { second in
                Group{
                    if second > first {
                        return Text("\(first)+\(second)=\(first+second)")
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...