Исходный код Go: о символах разных алфавитов | OTUS

Курсы

Программирование
iOS Developer. Basic
-23%
Python Developer. Professional
-13%
Разработчик на Spring Framework
-23%
Golang Developer. Professional
-17%
Python Developer. Basic
-16%
iOS Developer. Professional
-13%
Node.js Developer
-15%
Unity Game Developer. Professional
-11%
React.js Developer
-12%
Android Developer. Professional
-7%
Software Architect
-12%
C++ Developer. Professional
-8%
Разработчик C#
-8%
Backend-разработчик на PHP Архитектура и шаблоны проектирования
-12%
Программист С Базы данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-17%
DevOps практики и инструменты
-18%
Архитектор сетей
-21%
Инфраструктурная платформа на основе Kubernetes
-22%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив по управлению миграциями (DBVC)
-16%
Administrator Linux.Basic
-10%
Супер-интенсив «ELK»
-10%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Исходный код Go: о символах разных алфавитов

Go_Deep_29.4-5020-43279a.png

Согласно спецификации исходный код языка Go — это Unicode-текст, закодированный с помощью UTF-8 (какая связь между этим форматом и языком Go?). Это значит, что при написании кода вы можете использовать не только символы английского алфавита, но и, например, русского или китайского oO.

package main

type Request struct {}
func MakeRequest(r Request) {}

type Запрос struct {}
func СделатьЗапрос(запрос Запрос) {}

type 要求 struct {}
func 提出要求(req 要求) {}

func main() {
    MakeRequest(Request{})
    提出要求(要求{})
    СделатьЗапрос(Запрос{})
}

Код выше скомпилируется без проблем: https://goplay.space/#nPVkld2gNjB.

О такой возможности полезно знать, но использование неанглийского языка на практике достаточно сомнительно. Особенно при написании библиотек с открытым исходным кодом и документации к ним (как часто вы ругаетесь, когда видите в важном месте популярной библиотеки комментарий на китайском языке?). Хотя существуют промышленные системы, в которых принято писать, например, на русском языке (всем известная — ). Кроме того, есть эксперименты по написанию интерпретатора естественного языка на Go: https://github.com/covrom/gonec.

Вопрос внимательному читателю: а как при написании кода на иероглифах понимать, экспортируемый идентификатор или нет? :)

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться