Перейти к содержимому

Flant / Флант - 4 (техничка)

Актуальность: 1 кв 2026

Задача: Что произойдет при запуске этого кода? Завершится ли программа корректно? Исправьте ошибки. go/errors-panic

Заголовок раздела «Задача: Что произойдет при запуске этого кода? Завершится ли программа корректно? Исправьте ошибки. go/errors-panic»
func main() {
var wg sync.WaitGroup
c := make(chan string, 3)
for i := 0; i < 5; i++ {
wg.Add(1)
go func(i int) {
defer wg.Done()
c <- "Goroutine " + strconv.Itoa(i)
}(i)
}
for {
select {
case v := <-c:
fmt.Println(v)
}
}
wg.Wait()
close(c)
}

Задача: Что выведет программа при запуске? Всегда ли вывод будет одинаковым? Исправьте ошибку. go/errors-panic

Заголовок раздела «Задача: Что выведет программа при запуске? Всегда ли вывод будет одинаковым? Исправьте ошибку. go/errors-panic»
func run() {
ch := make(chan string)
go func() {
for m := range ch {
fmt.Println("processed:", m)
}
}()
ch <- "cmd.1 "
ch <- "cmd.2 "
}
func main() {
run()
}
ch := make(chan string)
done := make(chan struct{})
go func() {
for {
select {
case msg := <-ch:
fmt.Println("processed:", msg)
case <-done:
fmt.Println("stopped ")
return
}
}
}()
ch <- "cmd.1 "
ch <- "cmd.2 "
done <- struct{}{}

Задача: Будет ли когда-нибудь напечатано «Hello world!» при запуске этого кода? go/basics

Заголовок раздела «Задача: Будет ли когда-нибудь напечатано «Hello world!» при запуске этого кода? go/basics»
func main() {
runtime.GOMAXPROCS(1)
go func() {
fmt.Println("Hello world!")
}()
for {
}
}
x := []int{}
x = append(x, 0, 1, 2)
y := append(x, 3)
z := append(x, 4)
fmt.Println(y, z)
x := []int{0, 1, 2, 3}
y := append(x, 4)
z := append(x, 5)
fmt.Println(y, z)
func main() {
a := 0
defer fmt.Println(a)
defer func() {
a++
fmt.Println(a)
}()
}
v:=5
p:=&v
changePointer(p)
fmt.Println(*p) // 5
func changePointer(p*int) {
v:=3
p= &v
}
type errorString struct {
s string
}
func (e errorString) Error() string {
return e.s
}
func checkErr(err error) {
fmt.Println(err == nil)
}
func main() {
var e1 error
checkErr(e1)
var e2 *errorString
checkErr(e2)
e2 = &errorString{}
checkErr(e2)
var e3 *errorString = nil
checkErr(e3)
}
numbers := []*int{}
for i := 0; i < 5; i++ {
numbers = append(numbers, &i)
}
for _, p := range numbers {
fmt.Printf("%d ", *p)
}
numbers := []*int{}
for i := 0; i < 5; i++ {
v := i
numbers = append(numbers, &v)
}
for _, p := range numbers {
fmt.Printf("%d ", *p)
}
type Data struct {
Age int `json:"age "`
name string `json:"name "`
}
func testData() {
in := Data{33, "Ivan "}
fmt.Printf("%#v\n ", in)
// {Age:33, name:"Ivan "}
encoded, _ := json.Marshal(in)
fmt.Println(string(encoded))
// {"age ":33}
var out Data
json.Unmarshal(encoded, &out)
fmt.Printf("%#v\n ", out)
// {Age:33, name:""} - пустой name
}
func main() {
testData()
}