Преобразование типа 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.