Sulkeumat ja capturen perusteet
Ymmärtäkää sulkeumien syntaksi, lyhennetyt argumentit, trailing closure -syntaksi, capture-listat sekä escaping- ja non-escaping-sulkeumat.
Sulkeumat ja capturen perusteet on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.
Johdanto
Tässä oppitunnissa esitellään closuret: itsenäiset koodilohkot, joita voi välittää eteenpäin. Tutustukaa syntaksiin, lyhennettyihin argumentteihin, trailing closureen, capture-listoihin sekä escaping- ja non-escaping-closureihin.
Closure-syntaksi
Closuret muistuttavat kevyitä funktioita. Syntaksi on { (params) -> Return in ... }.
let greet = { (name: String) -> String in
return "Hello, \\(name)"
}
print(greet("Ada"))Lyhennetyt argumentit
Swift tarjoaa lyhennettyjä argumentteja, kuten $0 ja $1, closurejen yksinkertaistamiseksi.
let doubled = [1,2,3].map { $0 * 2 }
print(doubled)Trailing closure
Jos closure on viimeinen argumentti, sen voi kirjoittaa sulkeiden ulkopuolelle: kyseessä on trailing closure.
func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)Kaappauksen perusteet
Closuret kaappaavat ympäröivän näkyvyysalueen arvoja, esimerkiksi kasvavan laskurin.
func makeCounter() -> () -> Int {
var count = 0
return {
count += 1
return count
}
}
let counter = makeCounter()
print(counter()) // 1
print(counter()) // 2Capture-listat ja escaping
Käyttäkää capture-listoja, kuten [weak self], retain-syklien välttämiseksi. Closuret ovat oletusarvoisesti non-escaping; merkitkää ne koodilla @escaping, jos ne tallennetaan kutsun jälkeen käytettäviksi.
class Greeter {
var name = "Ada"
lazy var greet: () -> Void = { [weak self] in
print("Hello", self?.name ?? "?")
}
}
let g = Greeter()
g.greet()Capture-lista – pikatarkistus
Pikatarkistus: Mikä on capture-listan tehtävä?
Kertaus
Kertaus: Closuret ovat koodin sisäisiä lohkoja. Opetelkaa syntaksi, lyhennetyt argumentit ja trailing closure sekä hallitkaa kaappausta listoilla. Escaping-closuret säilyvät kutsun päättymisen jälkeen, kun taas non-escaping-closuret ovat oletusarvo.
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 ”Sulkeumat ja capturen perusteet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Sulkeumat ja capturen perusteet”. 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 ”Sulkeumat ja capturen perusteet”?
Ymmärtäkää sulkeumien syntaksi, lyhennetyt argumentit, trailing closure -syntaksi, capture-listat sekä escaping- ja non-escaping-sulkeumat. 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 1/3.
Kuinka kauan ”Sulkeumat ja capturen perusteet”-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
- Sulkeumat ja capturen perusteet
- Capture-listat — weak/unowned ja arvojen capture
- Escaping ja non-escaping, autoclosures