func getA() []IA {
var arr = make([]IA, 10)
arr[0] = a{}
return arr
}
package main
import (
"errors"
"fmt"
"strings"
)
type validator interface {
Validate() error
}
type FieldEmail string
func (fi *FieldEmail) Validate() error {
if fi == nil {
return errors.New("invalid field")
}
if !strings.Contains(string(*fi), "@") {
return errors.New("invalid field")
}
return nil
}
func NewFieldEmail(str string) *FieldEmail {
fieldEmail := FieldEmail(str)
return &fieldEmail
}
func checkValidators(validators ...validator) error {
for _, v := range validators {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
return err
}
}
return nil
}
func main() {
fmt.Printf("Error: %v\n", checkValidators(NewFieldEmail("test@test")))
var email *FieldEmail
fmt.Printf("Error: %v\n", checkValidators(email))
}
st := make([]string, len(stro))
for i := range stro {
func(i int) {
word := stro[i]
sts, err := au(word, na, la, ge)
if err != nil {
// .....
}
st[i] = sts
}(i)
}
ctx, cancel := context.WithTimeout(r.Context(), config.Read().HTTP.Timeout.Request*time.Second)
sync.WaitGroup
.<-ctx.Done()
внутри приведенной вами функции происходит раньше, чем такое же чтение канала внутри функции router.middlewareHandler(h). Поэтому нужно ждать не отмены контекста, а завершения работы горутины.if ctx.Err() != nil {
. Но у вас вместо этого ==, что вообще обесценивает код внутри этого ифа. body, err := ioutil.ReadAll(resp.Body)
if err != nil {
http.Error(w, "error reading response body", http.StatusInternalServerError)
return
}
// write status code and body from proxy request into the answer
w.WriteHeader(resp.StatusCode)
w.Write(body)
w.WriteHeader(resp.StatusCode)
_, err := io.Copy(w, body)
if err != nil {
http.Error(w, "error reading response body", http.StatusInternalServerError)
return
}
longDescription = s.Find(".vacancy-post").Not(".vacancy-page-title").Text()
str := "UserName: Vasya Pupkin"
result := strings.TrimPrefix(str, "UserName: ")
fmt.Println(result)
var city string
city := ""
:=
, а просто =
package main
import (
"encoding/xml"
"fmt"
)
type MyData struct {
XMLName xml.Name
Attributes []xml.Attr `xml:",attr"`
}
func main() {
v := MyData{
XMLName: xml.Name{Local: "somename"},
Attributes: []xml.Attr{
{Name: xml.Name{Local: "attr1"}, Value: "val1"},
{Name: xml.Name{Local: "attr2"}, Value: "val2"},
},
}
rawData, _ := xml.Marshal(v)
fmt.Println(string(rawData))
}