Golang book 12

переписать с отправкой структуры с 432 автотесты import "testing" func TestMyFunc(t *testing.T) { t.Error("not good test") } имя всегда должно начинаться с Test! go test /dir go test /dir -v -v это максимум подробности go test /dir -v -run Two -run запускает тест в названии которого есть two находит в текущем каталоге все файлы, которые завершаются на _test.go и выполняет там все функции, где имена начинаются с Test , при компиляции на эти файлы не обращают внимание.. func TestMyFunc(t *testing.T){ list := []string("app", "orange") if myFunc(list) != "norm result" { t.Error("pipec") } } подробные тесты писать так func TestMyFunc(t *testing.T){ list := []string("app", "orange") want := "norm result" result := myFunc(list) if result != want { t.Errorf("myFunc(%#v") = %#v, want %#v", list, result, want) } } если тестов много, то можно определить новый тип, как аргументы, результати через массив через цикл их перебрать называется табличные тесты веб приложения http://localhost:8080/hi package main import ( // "fmt" "log" "net/http" ) func web(writer http.ResponseWriter, request *http.Request) { writer.Write([]byte("hw")) } func main() { http.HandleFunc("/hi", web) err := http.ListenAndServe("localhost:8080", nil) log.Fatal(err) } 462 465 Преобразовать в байты и обратно fmt.Println(string([]byte(72, 101, 108, 108, 111))) // Hello fmt.Println([]byte("Hello")) // [72, 101, 108, 108, 111] func write(writer http.ResponseWriter, message string) { _, err := writer.Write([]byte(massage)) if err != nil { log.Fatal(err) } } функци можно присваивать другую функцию var newFunc func() var newFunc func(int, int) float64 newFunc = oldFunc 469 function twice(theFunc func()){ theFunc() theFunc() } Параметры и возвращаемое значение является частью типа функции 480