Dmitry Telenkov 3 viikkoa sitten
vanhempi
commit
d0162cb028

+ 24 - 0
books/go_head_first/misc/array.go

@@ -0,0 +1,24 @@
+package main
+
+import (
+	"fmt"
+)
+
+func average() {
+	numbers := [3]float64{71.8, 56.2, 89.5}
+	var sum float64
+	for _, number := range numbers {
+		sum += number
+	}
+	sampleCount := float64(len(numbers))
+	fmt.Printf("Average: %0.2f\n", sum/sampleCount)
+}
+
+func main() {
+	numbers := [6]int{3, 16, -2, 10, 23, 12}
+	for i, number := range numbers {
+		if number >= 10 && number <= 20 {
+			fmt.Println(i, number)
+		}
+	}
+}

+ 11 - 0
books/go_head_first/misc/average.go

@@ -0,0 +1,11 @@
+package main
+
+import (
+	"datafile"
+	"fmt"
+)
+
+func main() {
+	fmt.Println("hello")
+	datafile.GetFloats("data.txt")
+}

+ 3 - 0
books/go_head_first/misc/datafile/data.txt

@@ -0,0 +1,3 @@
+71.8
+56.2
+89.5

+ 33 - 0
books/go_head_first/misc/datafile/datafile.go

@@ -0,0 +1,33 @@
+package datafile
+
+import (
+	"bufio"
+	"os"
+	"strconv"
+)
+
+// GetFloats читает значение float64 из каждой строки файла.
+func GetFloats(fileName string) ([3]float64, error) {
+	var numbers [3]float64
+	file, err := os.Open(fileName)
+	if err != nil {
+		return numbers, err
+	}
+	i := 0
+	scanner := bufio.NewScanner(file)
+	for scanner.Scan() {
+		numbers[i], err = strconv.ParseFloat(scanner.Text(), 64)
+		if err != nil {
+			return numbers, err
+		}
+		i++
+	}
+	err = file.Close()
+	if err != nil {
+		return numbers, err
+	}
+	if scanner.Err() != nil {
+		return numbers, scanner.Err()
+	}
+	return numbers, nil
+}

+ 0 - 5
books/go_head_first/misc/my.txt

@@ -1,5 +0,0 @@
-
-asfs
-fa
-fasd
-fasfd

+ 26 - 0
books/go_head_first/misc/readfile.go

@@ -0,0 +1,26 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"log"
+	"os"
+)
+
+func main() {
+	file, err := os.Open("data.txt")
+	if err != nil {
+		log.Fatal(err)
+	}
+	scanner := bufio.NewScanner(file)
+	for scanner.Scan() {
+		fmt.Println(scanner.Text())
+	}
+	err = file.Close()
+	if err != nil {
+		log.Fatal(err)
+	}
+	if scanner.Err() != nil {
+		log.Fatal(scanner.Err())
+	}
+}

+ 18 - 1
books/go_head_first/misc/trash.go

@@ -12,7 +12,24 @@ func testStrings() {
 	fmt.Println(fixed)
 }
 
+func testString() {
+	v := "Hello"
+	for i, c := range v {
+		fmt.Printf("%d of '%s\n", i, string(c))
+	}
+
+	emoji := []rune("cool")
+	for _, ch := range emoji {
+		fmt.Printf("%d of '%s'\n", ch, string(ch))
+	}
+}
+
+func testSlice() {
+	
+}
+
 func main() {
+	testString()
 	/*
 		var price int = 100.0
 		fmt.Println("Price is", price, "dollars.")
@@ -35,6 +52,6 @@ func main() {
 		fmt.Println("Today is", year, "year")
 		fmt.Println("Now is", time.Now())
 	*/
-	test_error()
+	// test_error()
 	// testStrings()
 }

+ 10 - 0
books/go_head_first/serial/go.mod

@@ -0,0 +1,10 @@
+module serial
+
+go 1.24.1
+
+require go.bug.st/serial v1.6.4
+
+require (
+	github.com/creack/goselect v0.1.2 // indirect
+	golang.org/x/sys v0.19.0 // indirect
+)

+ 14 - 0
books/go_head_first/serial/go.sum

@@ -0,0 +1,14 @@
+github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=
+github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+go.bug.st/serial v1.6.4 h1:7FmqNPgVp3pu2Jz5PoPtbZ9jJO5gnEnZIvnI1lzve8A=
+go.bug.st/serial v1.6.4/go.mod h1:nofMJxTeNVny/m6+KaafC6vJGj3miwQZ6vW4BZUGJPI=
+golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
+golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

+ 22 - 0
books/go_head_first/serial/main.go

@@ -0,0 +1,22 @@
+package main
+
+import (
+	"fmt"
+	"log"
+
+	"go.bug.st/serial"
+)
+
+func main() {
+	ports, err := serial.GetPortsList()
+	if err != nil {
+		log.Fatal(err)
+	}
+	if len(ports) == 0 {
+		log.Fatal("No serial ports found!")
+		for _, port := range ports {
+			fmt.Printf("Found port: %v\n", port)
+		}
+	}
+
+}