Преобразование типа Go

Я знаю, что вы можете конвертировать примитивные типы в go.

Но когда я создаю свой собственный тип и устанавливаю, например, int в качестве основы, я могу использовать методы преобразования из int. Как это работает? Я сам никогда не создавал (функцию преобразования) функцию test(int)?

Этот пример поможет понять мой вопрос:

package main

// Creating my "own" type:
type test int

func main() {

    // Using conversion function that is from int (The thing I do not understand how it works):
    myVar := test(2) // Never created test(int) conversion function myself?
}

1 ответ

Решение

Вам не нужно реализовывать func test(int) test, это явное преобразование типа, как определено в спецификации:

Явное преобразование - это выражение формы T(x), где T - это тип, а x - выражение, которое может быть преобразовано в тип T.

Другие вопросы по тегам