Funktioner

Funktioner är ett sätt att separera en bit kod och ge den ett namn, vilket sen används för att utföra koden i funktionen. Detta underlättar återanvändning av samma kod, höjer läsbarheten och förenklar felsökning.

Funktioner är en kategori som finns gömd under Avancerad. Där hittar du en grå knapp ”skapa en funktion”.

När du namnger en funktion är det bra om den förklarar vad funktionen gör, i imperativ form. Till exempel ”tändAllaLampor”, ”hälsaVälkommen”, ”skapaNyttMål”. Eftersom namnet inte får innehålla mellanrum är det vanligt att skriva i kamelNotation (camelCase på engelska), vilket är ihop skriven med en versal på första bokstav av varje nytt ord.

dettaÄrEttExempelAvKamelNotation

När du har skapat en ny funktion (med namn ”görNågonting” i vår fall) får du ett block på arbetsytan med samma namn. I den kan du sen lägga alla block som ska utföras när funktionen körs.

För att sen använda funktionen någonstans i din kod hittar du ett block ”anropa funktion görNågonting”. Du kan tänka dig att detta block föreställer alla block som finns i din funktion, och det är dom som kommer utföras där du lägger detta block.

Tomtebloss exempel

När detta program börjar visas texten ”Tomtebloss” följd av en kort animering där fler och fler pixlar slumpmässigt blir tänd. Därefter rensas skärmen. Då, om man antingen trycker på A eller B knapp, eller skakar sin micro:bit, visas en kort animering där 10 gånger en slumpmässig pixel blir tänd för en tionde del av en sekund.

input.onGesture(Gesture.Shake, () => {
    tomtebloss()
})
input.onButtonPressed(Button.A, () => {
    tomtebloss()
})
input.onButtonPressed(Button.B, () => {
    tomtebloss()
})
function tomtebloss() {
    for (let i = 0; i < 10; i++) {
        basic.clearScreen()
        tändSlumpatPixel()
        basic.pause(100)
        basic.clearScreen()
    }
}
function tändSlumpatPixel() {
    led.plot(Math.random(5), Math.random(5))
}
basic.showString("Tomtebloss")
 for (let i = 0; i < 25; i++) {
    tändSlumpatPixel()
    basic.pause(10)
}
basic.pause(200)
basic.clearScreen()

Länk till koden

 

Senast ändrad 2017-10-23