golang book 7
если использовать папки, то
go install src/hw , в котором есть main.go
сохраняет всё в каталог bin
GOPATH переменная, путь рабочей области
для смены
export GOPATH="/code"
set GOPATH = "C:/code"
эта переменная каждый раз сбрасывается
если пакет с гита, то его лучше размещать в
src/github.com/user1/keyboard
есть быстрая установка с гита
go get github.com/user1/keyboard
так же можно посмотреть документацию по пакету
go doc strconv
go doc strconv ParseFloat
для добавления своей докумментации
// program
package p1
// ttt
// yyy
func ddd()
но документация для пакетов должна начинаться со слов Package имя пакета и продолжение
комменты для функций должны начинаться с имени функции
много документаций на golang.org
можно запустить свой сайт с документацией
godoc -http=:6060
http://localhost:6060/pkg/
для остановки ctrl c
тут будет всё, что установили на ваш комп
массивы
var myArray [4]string
myArray[0] = "do"
fmt.Println(myArray[0])
var arr [3]int
var arr [5]time.Time
что с незаполненн элементами массива,
они пустые, либо 0, как и при создании переменных
создать и сразу присвоить значения
var notes [7]string = [7]string{"do", "re", "mi", "fa", "so", "la", "ti"}
notes := [7]string{"do", "re", "mi", "fa", "so", "la", "ti"}
text := [3]string{
"This is a series of long strings",
"which would be awkward to place", "together on a single line",
}
с запятой, после последнего, тоже можно
через fmt.Println сразу можно выводить массив
чтоб отобразить массив через глагол, то
%#v
fmt.Printf("%#v\n", notes)
вывести длину массива
fmt.Println(len(notes))
вот безопасный перебор массива
for index, value := range myArray {
// Блок цикла.
}
если вам не нужен индекс, то кладем его в мусор переменной _
for _, note := range notes { fmt.Println(note)
}
превратить инт во float
weight := float64(index+1)
повар закупает мясо
package main
import (
"fmt"
)
func main() {
list := [3]float64{71.8, 56.2, 89.5}
var quantity float64
var result float64
for index, number := range list {
weight := float64(index+1)
quantity += weight
result += number * weight
fmt.Printf("%f * %f = %f , result = %f\n", number, weight,>
}
result /= quantity
fmt.Println(result)
}
go install github.com/headfirstgo/average
прочитать с файла данные
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())
}
}