Geneeriset algoritmit kokoelmille
Käyttäkää geneerisiä algoritmeja, kuten map , filter ja reduce , sekä kirjoittakaa omia funktioita Sequence -tyypille yksinkertaisilla rajoitteilla.
Geneeriset algoritmit kokoelmille on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 3 oppituntia.
Miksi geneerisiä algoritmeja?
Swift tarjoaa tehokkaita geneerisiä algoritmeja Sequence- ja Collection-tyypeille: map, filter ja reduce. Voitte myös kirjoittaa omia geneerisiä apumetodeja.
map
map soveltaa muunnosta jokaiseen alkioon ja palauttaa uuden taulukon.
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)filter
filter säilyttää predikaatin ehdon täyttävät alkiot.
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
reduce yhdistää sekvenssin yhdeksi tulokseksi käyttämällä aloitusarvoa ja yhdistämissulkeumaa.
let sum = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(sum)
let joined = ["a","b","c"].reduce("") { acc, s in acc + s } // "abc"
print(joined)Mukautettu geneerinen algoritmi (Sequence)
Luokaa oma geneerinen algoritmi rajoittamalla syöte tyyppiin Sequence ja käyttämällä sen Element-tyyppiä.
// Works for any Sequence whose Element meets the predicate
func allMatch<S: Sequence>(_ seq: S, _ predicate: (S.Element) -> Bool) -> Bool {
for x in seq { if !predicate(x) { return false } }
return true
}
print(allMatch([2,4,6]) { $0 % 2 == 0 }) // true
print(allMatch(["ab","c"]) { $0.count >= 2 }) // falseVinkkejä ja malleja
Vinkkejä:
- Suosikaa selkeitä sulkeumia: nimetkää parametrit, jos se parantaa luettavuutta.
- Ketjuttakaa map → filter → reduce käsittelyputkeksi.
- Sijoittakaa raskas työ suorituskyvyn vuoksi kuumien silmukoiden ulkopuolelle.
Reducen merkitys
Pikatarkistus: Mikä operaatio yhdistää sekvenssin yhdeksi arvoksi aloitusarvoa käyttäen?
Kertaus
Kertaus: Käyttäkää map-operaatiota muuntamiseen, filter-operaatiota valitsemiseen ja reduce-operaatiota yhdistämiseen. Voitte myös kirjoittaa omia geneerisiä apumetodeja Sequence-tyypille.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”Geneeriset algoritmit kokoelmille” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Geneeriset algoritmit kokoelmille”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Geneeriset algoritmit kokoelmille”?
Käyttäkää geneerisiä algoritmeja, kuten map , filter ja reduce , sekä kirjoittakaa omia funktioita Sequence -tyypille yksinkertaisilla rajoitteilla. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Geneeriset algoritmit kokoelmille”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Geneeriset funktiot ja tyypit
- Rajoitteet (where) ja tyyppipäättely
- Geneeriset algoritmit kokoelmille