Wpis z mikrobloga

#swift #ios #programowanie

func sumOfPositives (_ numbers: [Int] ) -> Int {
let positiveNum = numbers.flatMap{$0 > 0 ? $0 : 0}
var sum = 0
positiveNum.flatMap{sum += $0}
return sum
}

Wykonując ten kod dostaje dobre wyniki + error:

solution.swift:4:13: warning: result of call to 'flatMap' is unused
positiveNum.flatMap{sum += $0}

I teraz proszę powiedzcie mi jak mam traktować takie coś - czy to duży błąd?
  • 12
  • Odpowiedz
@penguin: flatMap używa się w określonym celu, i ponieważ twórcy języka nie dodali atrybutu @discardableResult to Ty używasz go źle. Pytania o sztywnego trzymania się braku błędów nie rozumiem - myślałem, że to jest fundament programowania, żeby nie było błędów.
  • Odpowiedz
@penguin: jest to błąd, może nie jakiś bardzo duży, bo ostatecznie rezultat jest taki jak powinien być ale można to zrobić lepiej. Jakbym robił review takiego kodu to na pewno bym tego nie przepuścił.
  • Odpowiedz
@jabl: Czy macie listę takich "funkcji" do zrobienia na danym obiekcie? Wydaje mi się, że sama dokumentacja swifta nie jest do końca najczytelniejsza. Chciałbym czegoś bardziej w stylku MDN lub nawet W3schools.
  • Odpowiedz
@penguin: nie ma tego az tak duzo, to sa funkcje wyzszego rzedu z Array, z pamieci: filter, map, flatMap, compactMap, reduce, sort. Jest mnostwo tutoriali jak z nich korzytac, na pewno znajdziesz taki, ktory Ci dobrze to rozjasni.
  • Odpowiedz