Programmeren in Go: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Danielheres (overleg | bijdragen)
Eerste versie
 
Danielheres (overleg | bijdragen)
Geen bewerkingssamenvatting
Regel 5:
 
Go: een snelle introductie
 
 
Auteur: Daniël Heres
Regel 25 ⟶ 24:
regels */
// Commentaar voor een regel
 
Pakketten
 
De eerste regel van Go moet een pakketnaam beschrijven. In een Go project moet er minstens één pakket zijn met de naam main en die moet een functie met de naam main bevatten.
 
package kabouters // Andere pakketten in project kunnen dit kabouterpakket importeren
 
import "fmt" // Pakket bekend door compiler
 
import "./mutsen" // Pakket beschikbaar in map
 
Variabelen en constanten
 
Het declarendeclareren van variabelen en typen gaat in Go behoorlijk anders dan in de meeste talen. Typen worden achteraf gedeclareerd, na de namen. Dit is duidelijk te zien in het volgende voorbeeld:
 
var a int // Variabele a heeft type int. Let op: een puntkomma als einde voor een statement is voor Go niet noodzakelijk (mag wel)
Regel 34 ⟶ 43:
var b, c, d, e int32 = 5, 7, 10, 4 // b, c, d en e hebben allemaal type int32, een regel mogen meerdere variabelen declareren. Let op int32 is niet hetzelfde als int
 
const er int = 5 // e is een constante
 
var f = 5 // Dit kan bij numerieke types, types worden automatisch toegewezen
Regel 46 ⟶ 55:
k, l, m = "GOOG", 43, 1.0
) // Gebruik van haakjes is heel handig bij declareren van veel variabelen, puntkomma's zijn verplicht als scheidingsteken! Haakjes kunnen ook bij sleutelwoorden const en type gebruikt worden.
 
n := 4 // Dit is een speciale korte declaratie voor variabelen
 
n := functie0() // Zeer comfortabel bij het aanroepen van functies!
 
o, p, q := 5.7, 100, "Kort"
 
const (
Regel 57 ⟶ 60:
Donderdag, Vrijdag, Zaterdag = 4, 5, 6;
)
 
 
 
//Let op, dit mag alléén binnen functies!
func functies() {
n := 4 // Dit is een speciale korte declaratie voor variabelen
 
n := functie0() // Zeer comfortabel bij het aanroepen van functies!
 
o, p, q := 5.7, 100, "Kort"
}
 
 
Regel 84 ⟶ 98:
 
d, e = e, d // Wisselen van variabelen! Hiervoor zijn bij minder expressieve talen drie regels voor nodig
 
Condities
 
If
Regel 124 ⟶ 136:
 
for a:=0; a<10; a++ {} // Een gewone for-loop
 
for i := range x {} // Probeer deze op verschillende types! Let op: werkt niet voor integers zoals bijvoorbeeld bij programmeertaal Python.
 
 
Switch
Regel 132 ⟶ 147:
case 100: Print("Vertienvoudigd!")
case 10: Print("Gelijk!")
case 2,3,5: Print("Nu, dit is wezenlijk verassendverrassend!")
default: Print("Standaard!")
}
Regel 141 ⟶ 156:
case f==20: Print("Aardig groot en ook nog 20!")
}
 
 
Functies
Regel 156 ⟶ 170:
return genoeg
}
 
func Konijn(wortels int) (genoeg bool) {
if wortels > 10 { genoeg = true; }
return // genoeg wordt "gereturned", kleiner dan tien -> false
}
 
func FunctieInFunctie(i int) (int) (
g := func(j int) (int) {
h := j * i + 1;
return h
}
return g(i +5);
}
 
Arrays
 
var x = [4]int{2, 8, 19, 30} // Maak een array met lengte 4 en waardes 2, 8, 19 en 30
var y = [4]int{2, 9} // Array met lengte 4, met waardes 2, 9, 0, 0
var z = [100]int{20:7, 65:8,99:2} // Array met lengte 100. Index 20 heeft waarde 7, 65 waar 8 enz. De rest heeft de waarde 0.
 
var a = [4]string{"bas", "bink", "bobo"} // index 3 is empty string
var b = [7]MijnEigenType{} // Eigen types kunnen ook, volgt later!
 
func arrays() {
 
for i := range x {
fmt.Print(i) // 0, 1, 2, 3
fmt.Print("\n")
 
for _, j := range x { // Een array heeft keys (index) en waardes, indien je keys niet nodig hebt gebruik je een laag streepje om alleen de waardes op te vragen!
fmt.Print(j) // 2, 8, 19, 30
fmt.Print("\n")
}
for i := range x {
x[i] = i
} //Maakt {0, 1, 2, 3}
 
x[2] = 0
fmt.Print(x[1:len(x)]) // Print alles behalve de eerste. len(x) rekent lengthe array uit.
 
}
 
Slices
 
Slices zijn vrij uniek voor Go. Slices kan je definiëren als arrays met een variabele lengte.
 
var x = []int{} // integer slice
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.