Sobes.tech
Назад к вопросам
Senior
4

Каким способом можно описать одну и ту же логику для разных типов, кроме дженериков?

Компании, где спрашивали
X5

Ответ от нейросети

sobes.tech AI

Кроме использования дженериков, в Go можно описать одну и ту же логику для разных типов с помощью интерфейсов. Интерфейсы позволяют определить набор методов, которые должны реализовывать типы, и работать с ними через интерфейс, обеспечивая полиморфизм.

Пример:

package main
import "fmt"

type Printer interface {
    Print()
}

type IntPrinter int
func (i IntPrinter) Print() {
    fmt.Println("Int value:", i)
}

type StringPrinter string
func (s StringPrinter) Print() {
    fmt.Println("String value:", s)
}

func printValue(p Printer) {
    p.Print()
}

func main() {
    var i IntPrinter = 10
    var s StringPrinter = "hello"
    printValue(i)
    printValue(s)
}

Таким образом, можно реализовать общую логику через интерфейсы без дженериков.