Sync
This commit is contained in:
parent
194ca9b7a9
commit
cfd7ab8a0b
@ -1,39 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
var aa [2]string
|
|
||||||
|
|
||||||
aa[0] = "Hello"
|
|
||||||
aa[1] = "World"
|
|
||||||
fmt.Println(aa[0], aa[1])
|
|
||||||
fmt.Println(aa)
|
|
||||||
|
|
||||||
primes := [6]int{2, 3, 5, 7, 11, 13}
|
|
||||||
fmt.Println(primes)
|
|
||||||
|
|
||||||
var s []int = primes[1:4]
|
|
||||||
fmt.Printf("The primes are %d and the slice is %d", primes, s)
|
|
||||||
|
|
||||||
// Slices are references to array sections
|
|
||||||
// Changing elements in a slice results in changes to the array
|
|
||||||
// So other slices referencing the same array section will also be changed
|
|
||||||
|
|
||||||
names := [4]string{
|
|
||||||
"John",
|
|
||||||
"Paul",
|
|
||||||
"George",
|
|
||||||
"Ringo",
|
|
||||||
}
|
|
||||||
fmt.Println(names)
|
|
||||||
|
|
||||||
a := names[0:2]
|
|
||||||
b := names[1:3]
|
|
||||||
fmt.Println(a, b)
|
|
||||||
|
|
||||||
// Now make some changes
|
|
||||||
b[0] = "XXX"
|
|
||||||
fmt.Println(a, b)
|
|
||||||
fmt.Println(names)
|
|
||||||
}
|
|
28
tour_of_go/l4/exercise-fibonacci-closure.go
Normal file
28
tour_of_go/l4/exercise-fibonacci-closure.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func fibonacci() func() int {
|
||||||
|
previous := 0
|
||||||
|
current := 0
|
||||||
|
result := 0
|
||||||
|
return func() int {
|
||||||
|
if current == 0 {
|
||||||
|
current = 1
|
||||||
|
} else if current == 1 && result == 0 {
|
||||||
|
result = current
|
||||||
|
} else {
|
||||||
|
result = previous + current
|
||||||
|
previous = current
|
||||||
|
current = result
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
f := fibonacci()
|
||||||
|
for i := 0; i < 10; i++ {
|
||||||
|
fmt.Println(f())
|
||||||
|
}
|
||||||
|
}
|
26
tour_of_go/l4/exercise-maps.go
Normal file
26
tour_of_go/l4/exercise-maps.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/tour/wc"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func WordCount(s string) map[string]int {
|
||||||
|
result := map[string]int{}
|
||||||
|
fields := strings.Fields(s)
|
||||||
|
for i := range fields {
|
||||||
|
word := fields[i]
|
||||||
|
_, exists := result[word]
|
||||||
|
if exists == true {
|
||||||
|
result[word] += 1
|
||||||
|
} else {
|
||||||
|
result[word] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
wc.Test(WordCount)
|
||||||
|
}
|
||||||
|
|
26
tour_of_go/l4/exercise-slices.go
Normal file
26
tour_of_go/l4/exercise-slices.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/tour/pic"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Pic(dx, dy int) [][]uint8 {
|
||||||
|
pic := make([][]uint8, dy)
|
||||||
|
for i := range(dy) {
|
||||||
|
inner_slice := make([]uint8, dx)
|
||||||
|
for y := range(dx) {
|
||||||
|
res := i * y
|
||||||
|
inner_slice[y] = uint8(res)
|
||||||
|
|
||||||
|
}
|
||||||
|
pic[i] = inner_slice
|
||||||
|
}
|
||||||
|
return pic
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
s := Pic(8, 8)
|
||||||
|
fmt.Println(s)
|
||||||
|
pic.Show(Pic)
|
||||||
|
}
|
20
tour_of_go/l4/function-closures.go
Normal file
20
tour_of_go/l4/function-closures.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func adder() func(int) int {
|
||||||
|
sum := 0
|
||||||
|
return func(x int) int {
|
||||||
|
sum += x
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
pos, neg := adder(), adder()
|
||||||
|
for i := 0; i < 10; i++ {
|
||||||
|
fmt.Println(
|
||||||
|
pos(i), neg(-2*i),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
21
tour_of_go/l4/function-values.go
Normal file
21
tour_of_go/l4/function-values.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
|
func compute(fn func(float64, float64) float64) float64 {
|
||||||
|
return fn(3,4)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
hypot := func(x, y float64) float64 {
|
||||||
|
return math.Sqrt(x*x + y*y)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(hypot(5, 12))
|
||||||
|
|
||||||
|
fmt.Println(compute(hypot))
|
||||||
|
fmt.Println(compute(math.Pow))
|
||||||
|
}
|
5
tour_of_go/l4/go.mod
Normal file
5
tour_of_go/l4/go.mod
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module exercise-maps.go
|
||||||
|
|
||||||
|
go 1.24.5
|
||||||
|
|
||||||
|
require golang.org/x/tour v0.1.0
|
2
tour_of_go/l4/go.sum
Normal file
2
tour_of_go/l4/go.sum
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
golang.org/x/tour v0.1.0 h1:OWzbINRoGf1wwBhKdFDpYwM88NM0d1SL/Nj6PagS6YE=
|
||||||
|
golang.org/x/tour v0.1.0/go.mod h1:DUZC6G8mR1AXgXy73r8qt/G5RsefKIlSj6jBMc8b9Wc=
|
35
tour_of_go/l4/maps.go
Normal file
35
tour_of_go/l4/maps.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type Vertex struct {
|
||||||
|
Lat, Long float64
|
||||||
|
}
|
||||||
|
|
||||||
|
var m map[string]Vertex
|
||||||
|
var new_m = map[string]Vertex{
|
||||||
|
"Bell Labs": Vertex{
|
||||||
|
40.68433, -74.39967,
|
||||||
|
},
|
||||||
|
"Google": Vertex{
|
||||||
|
37.42202, -122.08408,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// The above can also be written
|
||||||
|
var new_new_m = map[string]Vertex{
|
||||||
|
"Bell Labs": {40.68433, -74.39967},
|
||||||
|
"Google": {37.42202, -122.08408},
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
m = make(map[string]Vertex)
|
||||||
|
m["Bell Labs"] = Vertex{
|
||||||
|
40.68433, -74.39967,
|
||||||
|
}
|
||||||
|
fmt.Println(m["Bell Labs"])
|
||||||
|
|
||||||
|
|
||||||
|
fmt.Println(new_m)
|
||||||
|
fmt.Println(new_new_m)
|
||||||
|
}
|
16
tour_of_go/l4/mutating-maps.go
Normal file
16
tour_of_go/l4/mutating-maps.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
runc main() {
|
||||||
|
m := make(map[string]int)
|
||||||
|
|
||||||
|
m["Answer"] = 42
|
||||||
|
fmt.Println("The value:", m["Answer"])
|
||||||
|
|
||||||
|
delete(m, "Answer")
|
||||||
|
fmt.Println("The value:", m["Answer"])
|
||||||
|
|
||||||
|
v, ok := m["Answer"]
|
||||||
|
fmt.Println("The value:", v, "Present?", ok)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user