golang book 14
Записать в файл
func SaveString(fileName string, text string) error {
err := ioutil.WriteFile(filename, []byte(text), 0600)
return err
}
ограничение области видимости через if
if err := saveString("a.txt","hi"); err != nill {
log.Fatal(err)
}
switch randIntn(3)+1 {
case 1:
fmt.Println()
case 2:
default:
}
он автоматом завершает текущий case
если так не надо, то fallthrough
utf8String := "бгж"
len( длина в байтах
для количества символов
unicode/utf8
utf8.RuneCountInString(
535
segmentString := []rune("привет")
newSegment:= segmentString[3:]
обрезает первые 3 символа
а если превращать в []bute(
то не работает на рус буквах,
так как они по 2байта
в цикле может быть строка, она обработается по символам
точнее по рунам
буферизованные каналы
channel := make(chan string, 3)
3 определяет размер буфера
при отправке значение в буфере
chanel <- "s"
и горутина продолжает работать
если буфер переполнен, то будет блокировка
при извлечении ланных они так же по одному, начиная с первой отправки, ьудут приниматься
http://headfirstgo.com/
https://go.dev/doc/effective_go