Олег Цилюрик

Разработчик программных проектов с общим стажем 45 лет. На Go - с 2013 года.
Зарегистрирован с 20.02.2024
Комментарии
14 марта 2024

"в Go все аргументы передаются по значению, то есть копируются." - это не для всех типов данных так! Срезы (слайсы), хеши, каналы ... - передаются ПО ССЫЛКЕ.

Ответить
14 марта 2024

"ранее написанную функцию max" - начиная с версии GoLang 1.21 введены встроенные функции min() и max(), как ПРЕДОПРЕДЕЛЁННЫЕ имена языка - это те, которые без крайней необходимости предлагают не переопределять.

Ответить
14 марта 2024

"Могут содержать только латинские буквы, цифры и символ подчеркивания" - это грубая ошибка! В Go вся текстовая информация выражается в UNICODE кодировке UTF-8. Поэтому имена переменных могут содержать литеры ЛЮБОГО языка мира: русского, китайского, греческого... Наприер: func 世界() string {...} , угол := ... , var π float64 = math.Pi

Ответить
13 марта 2024

"Вместо этих сущностей, здесь используются структуры (тип struct), содержащие именованные поля и предоставляющие основной способ создания новых типов данных." - это глубокое заблуждение! Любой новый тип может быть основой ООП, и иметь собственные методы: type shape []point func (p *shape) append(data point) {...} } Или: type LogSeverityType string func (s LogSeverityType) String() string { ... } Или даже: type myint int64 func (m myint) плюс(i int32) (r myint) {...} И никаких нигде структур! Структура - это только один из частных случаев.

Ответить
20 февраля 2024

"а отсутствие современного ООП накладывает определенные ограничения на создание крупных проектов." - как-раз типы, методы и интерфейсы Go обеспечивают более современную модель ООП в сравнении с традиционными C++ или Java.

Ответить
20 февраля 2024

Начиная с версии 1.22 GoLang в циклах for разрешено использование итератора range для целочисленных операндов:

    for i := range 10 {
            print(i, " ")
    }
Ответить
20 февраля 2024

"Стоит помнить, что имя пакета должно соответствовать названию директории, в которой расположены его файлы." - это ошибка. Имена пакетов не обязаны никак соотносится с именами их содержащих файлов.

Ответить