Опитвам се да накарам тази функция да върне Bool стойност, но не разбирам защо получавам грешката „липсва връщане във функция, която се очаква да върне „Bool“. Оглеждах се онлайн и опитвах различни неща, но изглежда не мога да намеря решение. Всяка помощ ще бъде оценена!
func trueSquare(a:[Int], b:[Int]) -> Bool {
for i in b[0]...b.endIndex {
if b[i] == a[i]*a[i] {
return true
}
else {
return false
}
}
}
РЕДАКТИРАНЕ: Промених цикъла на for i in 0...(b.count - 1)
, но все още получавам същата грешка, дори когато извикам функцията с a и b, които имат еднакъв брой елементи.
b.endIndex
беше по-малко отb[0]
? - person Travis Griggs   schedule 23.01.2019return zip(a, b).contains(where: { $0 * $0 == $1 })
може да е по-лесен начин за получаване на резултата. - person Martin R   schedule 23.01.2019...b.endIndex
също е грешен –endIndex
е индексът „един след края“. По-добре:for i in b.indices { ... }
- person Martin R   schedule 23.01.2019return
вътре в цикъла, ако искате да итерирате целия цикъл. - person rmaddy   schedule 24.01.2019