Swift:
Koodin järjestäminen funktioihin
Kuinka:
Kuvittele tehtävä: laske taulukon keskiarvo. Ilman funktioita, liittäisit kaiken pääohjelmaan. Funktioiden avulla tekisit näin:
func laskeKeskiarvo(luvut: [Double]) -> Double {
let summa = luvut.reduce(0, +)
return luvut.isEmpty ? 0 : summa / Double(luvut.count)
}
// Käyttö
let pisteet = [92.5, 88.75, 99.0, 70.5]
let keskiPisteet = laskeKeskiarvo(luvut: pisteet)
print("Keskipisteet ovat \(keskiPisteet)")
Esimerkkituloste olisi:
Keskipisteet ovat 87.6875
Syväsukellus
Historiallisesti kun ohjelmointi monimutkaistui, funktiot muodostuivat kivijalaksi monimutkaisuuden hallinnassa. Vaihtoehtoja ovat sisäänleivottu koodaus ja koodin kopioiminen ja liittäminen (spagetti-koodi) – joita nyt pidetään suurelta osin huonoina käytäntöinä. Swiftissä funktiot ovat ensiluokkaisia kansalaisia; niitä voidaan sijoittaa muuttujiin, välittää argumentteina ja palauttaa muista funktioista, mikä tekee koodista modulaarisempaa ja joustavampaa.
Toteutuksen osalta, suunnittele funktiosi tekemään yksi asia hyvin. Tavoittele funktioita, joilla on selkeä tarkoitus ja nimi, joka heijastaa sitä. Tarkkaile parametrien määrää – liian monia, ja todennäköisesti teet liikaa. Virheenkäsittely? Harkitse virheitä heittäviä funktioita ja käsittele ongelmia arvokkaasti. Muista: Swiftissä on kaikki kyse luettavuudesta ja ylläpidon helppoudesta.