د Go پروګرامینګ ژبه خپرول 1.16

د Go 1.16 برنامه کولو ژبه خپرول وړاندې کیږي ، کوم چې د ګوګل لخوا د ټولنې په ګډون د هایبرډ حل په توګه رامینځته کیږي چې د تالیف شوي ژبو عالي فعالیت د سکریپټینګ ژبو داسې ګټو سره ترکیب کوي لکه د کوډ لیکلو اسانه کول. د پرمختګ سرعت او د خطا ساتنه. د پروژې کوډ د BSD جواز لاندې ویشل شوی.

د Go ترکیب د C ژبې د پیژندلو عناصرو پراساس دی چې د Python ژبې څخه ځینې پور اخیستل کیږي. ژبه خورا لنډه ده، مګر کوډ د لوستلو او پوهیدو لپاره اسانه دی. د ګو کوډ په یوازینۍ بائنري اجرایوي فایلونو کې تالیف شوی چې په اصلي ډول د مجازی ماشین کارولو پرته چلیږي (پروفایلینګ ، ډیبګ کولو ماډلونه ، او د رن ټایم ستونزې کشف کولو نور فرعي سیسټمونه د رن ټایم برخو په توګه مدغم شوي) ، کوم چې د C برنامو سره پرتله کولو فعالیت ته اجازه ورکوي.

پروژه په پیل کې د څو اړخیزو پروګرامونو په نظر کې نیولو سره رامینځته شوې او په څو کور سیسټمونو کې اغیزمن عملیات شامل دي، په شمول د موازي کمپیوټري تنظیم کولو او د موازي اجرا شوي میتودونو ترمنځ تعامل لپاره د آپریټر کچې وسیلو چمتو کول. ژبه د ډیر تخصیص شوي حافظې بلاکونو پروړاندې جوړ محافظت هم چمتو کوي او د کثافاتو راټولونکي کارولو وړتیا چمتو کوي.

Основные новшества, представленные в выпуске Go 1.16:

  • Добавлен пакет embed, предоставляющий средства для встраивания в программу произвольных файлов и каталогов. Для указания файлов, которые необходимо встроить на этапе компиляции, предоставляется новая директива «//go:embed». Например, указание в коде комментария «//go:embed test.txt» и объявление следом переменной «var f embed.FS» приведёт в встраиванию файла test.txt и возможности обращения к нему через дескриптор «f». Подобным образом можно встраивать необходимые для работы файлы с ресурсами или отдельными значениями определённого типа, например, для получения строковой переменной «s» из файла version.txt можно указать: import _ «embed» //go:embed version.txt var s string print(s)
  • По умолчанию теперь требуется использование новой системы модулей с интегрированной поддержкой версионирования, которая пришла на смену средствам управления зависимостями на основе GOPATH. Переменная окружения GO111MODULE теперь выставлена в значение «on» по умолчанию и режим модулей используется независимо от присутствия файла go.mod в рабочем или родительском каталоге. В новом режиме сборочные команды, такие как «go build» и «go test», не изменяют содержимое go.mod и go.sum, а команда «go install» обрабатывает аргументы с указанием версии («go install example.com/[ایمیل خوندي شوی]»). Для возвращения старого поведение следует изменить GO111MODULE на значение «auto». Отмечается, что 96% разработчиков уже перешли на новую систему модулей.
  • Проведена оптимизация компоновщика. Для больших проектов компоновка теперь выполняется на 20-25% быстрее и требует на 5-15% меньше памяти.
  • В компиляторе добавлена поддержка inline-развёртывания функций с сокращённым определением циклов «for», методом значений (method values) и конструкциями ‘type switch’.
  • Добавлена поддержка систем Apple, оснащённых новым ARM-чипом Apple M1. Добавлены порты netbsd/arm64 и openbsd/mips64 с поддержкой NetBSD на 64-разрядных ARM и OpenBSD на системах MIPS64. В порт linux/riscv64 добавлена поддержка cgo и режима «-buildmode=pie».
  • Прекращена поддержка режима компиляции x87 (GO386=387). Поддержка процессоров без инструкций SSE2 теперь доступна через программный режим «GO386=softfloat».

Дополнительно можно отметить начало тестирования бета-выпуска языка Dart 2.12, в котором стабилизирован режим безопасного использования значения «Null» (null safety), который позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в «Null». Режим подразумевает, что переменные не могут иметь неопределённые значения, если им явно не присваивается значение null. В режиме строго учитываются типы переменных, что позволяет компилятору применять дополнительные оптимизации. Соответствие типов проверяется на этапе компиляции, например, в случае попытки присвоения значения «Null» переменной с типом, не подразумевающим неопределённое состояние, таким как «int», будет выведена ошибка.

سرچینه: opennet.ru

Add a comment