In dit artikel leer je alles over functies, wat een functie is, syntaxis, typen in Swift met voorbeelden.
Wat is een functie?
Een functie is een groep instructies die een uit te voeren actie definieert. Het belangrijkste gebruik van een functie is om de code herbruikbaar te maken.
Niet-technisch kun je een functie zien als een machine. Een machine voert een specifieke taak uit, vraagt om input, verwerkt de input en geeft de output terug.
Soorten functies
Afhankelijk van of een functie vooraf is gedefinieerd of door de programmeur is gemaakt; er zijn twee soorten functies:
- Bibliotheekfuncties - Functies die al in Swift Framework zijn gedefinieerd.
- Door de gebruiker gedefinieerde functies - Functies die door de programmeur zelf zijn gemaakt.
Bibliotheekfuncties
Bibliotheekfuncties zijn ingebouwde functies die al zijn gedefinieerd in Swift-framework. Deze functies zijn aanwezig om veelvoorkomende problemen in Swift op te lossen, zodat u ze niet zelf hoeft op te lossen. Het zijn eenvoudige bewerkingen zoals afdrukken, minimum en maximum vinden, enz.
U kunt de bibliotheekfunctie rechtstreeks gebruiken door deze aan te roepen (aanroepen). Als je wilt, kun je alle functies binnen het Swift-framework zien. Schrijf gewoon import Swift, druk op Cmd en klik erop. U gaat naar een nieuwe pagina. Doorzoek alle uitspraken die beginnen met een func
trefwoord.
Voorbeeld 1: Bibliotheek of ingebouwde functie
print("Hello, World!")
Wanneer u het bovenstaande programma uitvoert, is de uitvoer:
Hallo Wereld!
In het bovenstaande programma hebben we een ingebouwde print
functie aangeroepen die is gedefinieerd in Swift Framework. De functie wordt gebruikt om uitvoer in de console af te drukken.
We kunnen de print()
functie aanroepen omdat het Swift-framework automatisch in onze Playground wordt geïmporteerd. Anders hadden we het zelf moeten importeren door te schrijven import Swift
.
Door de gebruiker gedefinieerde functies
Met Swift kunt u ook uw eigen functie definiëren. Door uw eigen functie te maken, kunt u code schrijven om problemen op te lossen of taken uit te voeren die niet beschikbaar zijn in Swift Framework. U kunt uw functie ook hergebruiken om in de toekomst soortgelijke taken uit te voeren.
Evenzo kunnen functies ook worden gecategoriseerd op basis van parameters en retourinstructies. Zie het artikel Swift-functieparametertypes en retourtypes.
Een functie definiëren
func functienaam (args…) -> ReturnType (// statements retourwaarde)
Laten we elk onderdeel kort beschrijven:
func
is het sleutelwoord dat u moet schrijven om een functie te makenfunction_name
is de naam van een functie. U kunt het elke naam geven die definieert wat een functie doet.args…
definieert de invoer die een functie accepteert.->
Deze operator wordt gebruikt om het retourtype van een functie aan te geven.ReturnType
definieert het type waarde dat u van een functie kunt retourneren. BijvInt
.String
Etc.return
trefwoord wordt gebruikt om de besturing van een programma over te dragen aan de functieaanroep en ook om waarde van een functie te retourneren.
Zelfs als u het return- sleutelwoord niet opgeeft, keert de functie automatisch terug na uitvoering van de laatste instructie.value
vertegenwoordigt de feitelijke gegevens die door de functie worden geretourneerd. Het waardetype moet overeenkomen met deReturnType
.
Hoe werkt de functie?
In het bovenstaande diagram function_name(args)
roept de instructie de functie aan / roept deze aan met de argumentwaarden args, die dan het huidige gedeelte van de code verlaat (dwz stopt met het uitvoeren van instructies eronder) en begint met het uitvoeren van de eerste regel binnen de functie.
- Het programma komt op een regel code
func function_name(Args… )
en accepteert de waarden die args zijn doorgegeven tijdens de functieaanroepfunction_name(args)
. - Het programma voert vervolgens de instructies uit
statementsInsideFunction
die binnen de functie zijn gedefinieerd. - De instructies in de functie worden achter elkaar van boven naar beneden uitgevoerd.
- Na de uitvoering van de laatste instructie verlaat het programma de functie en gaat terug naar waar het begon, dwz
function_name(args)
. let val =
slaat de waarde op die wordt geretourneerd door de functie in een constante waarde. Evenzo kunt u in een variabele opslaan alsvar val =
.- Daarna worden verklaringen
statementsOutsideFunction
uitgevoerd.
Voorbeeld 2: Hoe definieer ik een functie in Swift?
func greet(user:String) ( print("Good Morning! (user)") )
Hierboven ziet u een functiedefinitie die bestaat uit de volgende componenten:
- Trefwoord
func
markeert het begin van de functiekop. greet
is een functienaam om de functie in het programma uniek te identificeren en aan te roepen.(user:String)
markeert het einde van de functieheader en accepteert een parameter van het typeString
. Zie het artikel Swift-functieparametertypen en retourtypen waarin de functie met parameters wordt gedefinieerd.- De functie bestaat uit een
print
instructie in de body die wordt uitgevoerd nadat je de functie hebt aangeroepen.
Een functie aanroepen
Als je eenmaal een functie hebt gemaakt, kun je deze in je programma aanroepen om de instructies uit te voeren die binnen de functie zijn gedeclareerd. Om een functie aan te roepen, schrijft u eenvoudig de functienaam gevolgd door () en geeft u de invoerparameters erin door als:
greet (gebruiker: "Isac")
Voorbeeld 3: een functie aanroepen in Swift
func greet(user:String) ( print("Good Morning! (user)") ) greet(user: "Isac")
Wanneer u het bovenstaande programma uitvoert, is de uitvoer:
Goedemorgen! Isac
greet(user: "Isac")
Roept in de bovenstaande code de functie op en geeft de waarde Isac
van het type door String
. Daarna wordt de print
instructie binnen de functie uitgevoerd.
Retourverklaring
Het trefwoord return vertelt het programma om de functie te verlaten en terug te keren naar de regel waar de functieaanroep werd gedaan.
U kunt ook waarde doorgeven met het return
sleutelwoord waarbij waarde een variabele is of andere informatie die uit de functie terugkomt.
Voorbeeld 3: functie met return-trefwoord
func greet(user:String)-> String ( return "Good Morning! (user)" ) let greeting = greet(user: "Isac") print(""" You have a new message (greeting) """)
Wanneer u het bovenstaande programma uitvoert, is de uitvoer:
Je hebt een nieuw bericht. Goedemorgen! Isac
greet(user: "Isac")
Roept in de bovenstaande code de functie op en geeft de waarde Isac
van het type door String
. return "Good Morning! (user)"
statement geeft de waarde van type terug String
en draagt het programma over naar de functieaanroep.
let greeting =
slaat de waarde op die wordt geretourneerd door de functie. Nadat de functie is geretourneerd, wordt de print
instructie onder de functieaanroep uitgevoerd.
Dingen om te onthouden
- Geef een functienaam die het doel van de functie weergeeft.
- Een functie mag slechts één taak uitvoeren. Als een functie meer dan één taak uitvoert, deel deze dan op in meerdere functies.
- Probeer vroeg te denken en groepeer uitspraken binnen een functie die de code herbruikbaar en modulair maakt.