Что такое базовый тип данных в go (golang)?

Добрый день. Возможно кто-то мне поможет с моим вопросом. Ни google, ни документация не дает исчерпывающего ответа по вопросу "что такое тип данных?"
В файле go/src/builtin/builtin.go располагаются типы данных. Почему там конструкция языка позволяет ставить:
type string string
type int16 int16

Однако, если я сам захочу поставить, меня runtime заругает:
type MyType MtType
Почему я могу сделать:
type MyStr string
И компилятор забудет про инкапсуляцию типа string. Я могу такой же тип как-то сделать или мне надо будет свой тип добавлять в исключение runtime, а компилятор спокойно скушает.
Вообще MyStr я смогу метод указать, а string нет, хотя MyStr наследует тип string и вообще можно такое, своего рода, наследование сделать.

Например, на сколько знаю, в js всё реализовано через объекты. Делаем тип string, а это объект, у которого свои методы.
В go составные типы данных являются структурами. А что с атомарными типами? Я не вижу, чтобы они являлись структурами.

Где хотя бы это почитать можно? Может кто-то уже пролистал интернет на эту тему? Может кто-то расковырял runtime и хочет поделиться? Может я хочу свой компилятор сделать, как для C++ какого-нибудь наклёпано, но информации нет.
  • Вопрос задан
  • 438 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы