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

MTS / МТС (задачи, ч. 1)

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

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)
}
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)
}
func main() {
c := []string{"A ", "B ", "C ", "D "}
b := c[1:2]
b = append(b, "TT ")
fmt.Println(c)
fmt.Println(b)
}
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]) // ?
}
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)
}
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)
}
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)
}
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))
}
func main() {
str:="Привет "
str[0] = 'e'
fmt.Println(str)
}
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])
}
}