MTS / МТС (задачи, ч. 1)
Актуальность: 1 кв 2025
Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»func main() { v := []int{3, 4, 1, 2, 5} ap(v) sr(v) fmt.Println(v)}
func ap(arr []int) { arr = append(arr, 10)}
func sr(arr []int) { sort.Ints(arr)}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»func main() { var foo []int var bar []int
foo = append(foo, 1) foo = append(foo, 2) foo = append(foo, 3) bar = append(foo, 4) foo = append(foo, 5)
fmt.Println(foo, bar)}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»func main() { c := []string{"A ", "B ", "C ", "D "} b := c[1:2] b = append(b, "TT ") fmt.Println(c) fmt.Println(b)}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»func main() { var m map[string]int
for _, word := range []string{"hello ", "world ", "from ", "the ", "best ", "language ", "in ", "the ", "world "} { m[word]++ }
for k, v := range m { fmt.Println(k, v) }}Задача: Что будет содержать s после инициализации? Что произойдет в println для слайса и для мапы? go/slices-arrays
Заголовок раздела «Задача: Что будет содержать s после инициализации? Что произойдет в println для слайса и для мапы? go/slices-arrays»func a(s []int) { s = append(s, 37)}
func b(m map[int]int) { m[3] = 33}
func main() { s := make([]int, 3, 8) m := make(map[int]int, 8)
// add to slice a(s) println(s[3]) // ?
// add to map b(m) println(m[3]) // ?}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»type impl struct{}
type I interface { C()}
func (*impl) C() {}
func A() I { return nil}
func B() I { var ret *impl return ret}
func main() { a := A() b := B() fmt.Println(a == b)}Задача: Добавить код, который выведет тип переменной whoami. go/basics
Заголовок раздела «Задача: Добавить код, который выведет тип переменной whoami. go/basics»func printType(whoami any) { // Добавить код здесь}
func main() { printType(42) printType("im string ") printType(true)}Задача: Исправить функцию, чтобы она работала. Сигнатуру менять нельзя. go/basics
Заголовок раздела «Задача: Исправить функцию, чтобы она работала. Сигнатуру менять нельзя. go/basics»func printNumber(ptrToNumber any) { if ptrToNumber != nil { fmt.Println(ptrToNumber.(*int)) } else { fmt.Println("nil ") }}
func main() { v := 10 printNumber(&v) var pv *int printNumber(pv) pv = &v printNumber(pv)}Задача: Что выведет код и почему? go/puzzles
Заголовок раздела «Задача: Что выведет код и почему? go/puzzles»type MyError struct{}
func (MyError) Error() string { return "MyError!"}
func errorHandler(err error) { if err != nil { fmt.Println("Error:", err) }}
func main() { var err *MyError errorHandler(err) err = &MyError{} errorHandler(err)}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»type User struct { Valid bool Id int64 Number int32}
type CUser struct { Id int64 Number int32 Valid bool}
func main() { user := User{} cuser := CUser{}
fmt.Println(unsafe.Sizeof(user) == unsafe.Sizeof(cuser))}Задача: Как сделать так, чтобы работало? go/basics
Заголовок раздела «Задача: Как сделать так, чтобы работало? go/basics»func main() {str:="Привет "str[0] = 'e'fmt.Println(str)}Задача: Что выведет код? go/puzzles
Заголовок раздела «Задача: Что выведет код? go/puzzles»func main() { a := []int{10, 20, 30, 40} b := make([]*int, len(a))
for i, v := range a { b[i] = &v fmt.Println(*b[i], *b[i]) }}