2
1
Fork 0

next level starting point

main^2
Sebastian Steger 2025-08-20 07:02:25 +00:00
parent 3ec6832cfc
commit 26d961ea89
2 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,51 @@
package main
import "fmt"
func SlicesIndex[S []E, E int](s []string, v string) int {
for i := range s {
if v == s[i] {
return i
}
}
return -1
}
type List struct {
head, tail *element
}
type element struct {
next *element
val int
}
func (lst *List) Push(v int) {
if lst.tail == nil {
lst.head = &element{val: v}
lst.tail = lst.head
} else {
lst.tail.next = &element{val: v}
lst.tail = lst.tail.next
}
}
func (lst *List) AllElements() []int {
var elems []int
for e := lst.head; e != nil; e = e.next {
elems = append(elems, e.val)
}
return elems
}
func main() {
var s = []string{"foo", "bar", "zoo"}
fmt.Println("index of zoo:", SlicesIndex(s, "zoo"))
lst := List{}
lst.Push(10)
lst.Push(13)
lst.Push(23)
fmt.Println("list:", lst.AllElements())
}

View File

@ -0,0 +1,35 @@
package main
import (
"fmt"
"os"
)
func main() {
f := createFile("/tmp/defer.txt")
writeFile(f)
closeFile(f)
}
func createFile(p string) *os.File {
fmt.Println("creating")
f, err := os.Create(p)
if err != nil {
panic(err)
}
return f
}
func writeFile(f *os.File) {
fmt.Println("writing")
fmt.Fprintln(f, "data")
}
func closeFile(f *os.File) {
fmt.Println("closing")
err := f.Close()
if err != nil {
panic(err)
}
}