Методы для базовых типов в Go
Язык программирования Go включает в себя множество строковых функций, таких как ToUpper() и Split() . В отличие от других языков, которые могут определять эти функции как методы строкового типа, Go вместо этого определяет их как часть пакета строк. Почему это так?
Простота и гибкость
По мнению создателей Go, одной из основных причин сохранения методов вне базовых типов, таких как string, является сохранение простота и гибкость языка. Разрешение методов базовых типов усложнило бы обработку интерфейсов.
Изоляция встроенной функциональности
Строки, как и другие фундаментальные типы, в Go реализованы на уровне языка. Добавление методов к этим типам потребует изменения самого языка, что нежелательно с точки зрения обслуживания и развития.
С другой стороны, пакет strings предоставляет удобный и расширяемый способ добавления новых функций к строкам без изменение базового типа. Пользовательские типы, расширяющие строку, при желании по-прежнему могут получить доступ к встроенной функции ToUpper.
Философия дизайна
Философия дизайна Go подчеркивает осторожность и избегание ненужной сложности. Решение не включать методы в базовые типы было основано на этой философии, в которой приоритет отдается простоте и удобству обслуживания, а не потенциальному синтаксическому сахару.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3