forked from steger/pr3-ws202627
119 lines
1.9 KiB
Go
119 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
const h string = "constant"
|
|
|
|
// zeroval bekommt eine KOPIE: Änderung wirkt nur lokal.
|
|
func zeroval(ival int) {
|
|
ival = 0
|
|
}
|
|
|
|
// zeroptr bekommt die ADRESSE: Änderung wirkt auf das Original.
|
|
func zeroptr(iptr *int) {
|
|
*iptr = 0
|
|
}
|
|
|
|
func basics() {
|
|
fmt.Println("go", "lang")
|
|
fmt.Println("go" + "lang")
|
|
fmt.Println(7 / 3) // 2 (Ganzzahldivision)
|
|
fmt.Println(true || false)
|
|
fmt.Println(!true)
|
|
}
|
|
|
|
func variables() {
|
|
var a = "Initial" // Typ wird inferiert
|
|
fmt.Println(a)
|
|
a = "string"
|
|
fmt.Println(a)
|
|
|
|
var b int // Nullwert: 0
|
|
var c = 4
|
|
var x, y, z int = 1, 3, 6
|
|
fmt.Println(b, c)
|
|
fmt.Println(x, y, z)
|
|
|
|
s, z := "string", 8 // s neu, z nur neu zugewiesen
|
|
fmt.Println(s, z)
|
|
|
|
svar := h
|
|
fmt.Println(svar)
|
|
}
|
|
|
|
func constants() {
|
|
const n = 500000
|
|
const q = 3e20 / n // untypisiert, wird zur Compile-Zeit berechnet
|
|
fmt.Println(q) // 6e+14
|
|
i := int64(n)
|
|
fmt.Println(math.Sin(float64(i)))
|
|
fmt.Println(math.Sin(n)) // untypisierte Konstante passt sich an
|
|
}
|
|
|
|
func controlFlow() {
|
|
// Schleife mit Abbruchbedingung
|
|
count := 0
|
|
for {
|
|
fmt.Println("hello")
|
|
count++
|
|
if count >= 3 {
|
|
break
|
|
}
|
|
}
|
|
|
|
j := 2
|
|
switch j {
|
|
case 1:
|
|
fmt.Println("one")
|
|
case 2, 3:
|
|
fmt.Println("two or three")
|
|
default:
|
|
fmt.Println("other")
|
|
}
|
|
}
|
|
|
|
func arrays() {
|
|
var u [5]int
|
|
u[2] = 4
|
|
v := [...]int{1, 3, 4, 5, 6, 3} // Länge wird vom Compiler gezählt
|
|
fmt.Println(u, v, len(v))
|
|
}
|
|
|
|
func pointers() {
|
|
t := 1
|
|
zeroval(t)
|
|
fmt.Println(t) // 1, unverändert
|
|
zeroptr(&t)
|
|
fmt.Println(t) // 0, verändert
|
|
|
|
j := 2
|
|
p := &j
|
|
fmt.Println(*p) // 2 (Dereferenzierung)
|
|
}
|
|
func slices() {
|
|
a := []int{}
|
|
a = append(a, 5, 6, 6, 9, 7, 8)
|
|
a = append(a, 6)
|
|
a = append(a, 7)
|
|
a[3] = 99
|
|
a = append(a, 8)
|
|
b := a
|
|
a = append(a, 9)
|
|
fmt.Println(a, len(a))
|
|
fmt.Println(b)
|
|
|
|
}
|
|
|
|
func main() {
|
|
basics()
|
|
variables()
|
|
constants()
|
|
controlFlow()
|
|
arrays()
|
|
pointers()
|
|
slices()
|
|
}
|