Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIfPrm 36 of 280 menu
◀ ▶

Практика на интерфейсы в Go

Дана структура:

package main import "fmt" type Message struct { Body string }

Объявите интерфейс Shower с методом Show, повесьте метод на Message, положите значение с телом "ping" в Shower и выведите результат вызова Show.

Дан следующий код:

package main import "fmt" type Speaker interface { Speak() string } type Cat struct { Name string } func (c Cat) Speak() string { return "meow" } func announce(s Speaker) { fmt.Println(s.Speak()) }

Создайте Cat с именем "mila", передайте его в announce и выведите то, что вернет метод.

Даны объявления:

package main type Meter interface { Read() int Reset() } type Gauge struct { level int } func (g Gauge) Read() int { return g.level }

Добавьте Reset с получателем-указателем, который обнуляет level, и скажите, соберется ли var m Meter = Gauge{level: 5}.

Дано значение:

package main import "fmt" type Box struct { Tag string } func (b Box) String() string { return b.Tag } item := Box{Tag: "A1"}

Выведите item одной командой печати и скажите, откуда возьмется текст на экране.

Дан следующий код:

package main import "fmt" var holder any = 100

Достаньте int с ok, при успехе выведите число, иначе выведите "miss".

Напишите функцию describe с параметром any, которая через переключатель типов выводит "text" для string, "number" для int и "else" в остальных случаях. Проверьте на строке и на числе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить