Есть ли у Go пакеты для конкретных ОС, которые нельзя использовать в другой ОС?
Я не могу назвать себя абсолютным новичком в go
, и я определенно не эксперт.
Сегодня я заметил кое-что ОЧЕНЬ непонятное. Я экспериментировал с сокетами Unix и именованными каналами Windows, и, согласно моим исследованиям, есть 2 пакета, поддерживающих именованные каналы Windows:
https://github.com/Microsoft/go-winio (я не смог найти ЛЮБУЮ документацию, справку, инструкции и т. д. об этом пакете)
Моя ОС - Linux, и я решил попробовать: go get
пакет (ы) и напишите код для последующего тестирования на машине с Windows, но, к моему удивлению, по крайней мере в VSCode, эти пакеты не распознаются инструментами.
Когда я смотрю на npipe
например, я вижу только npipe_windows.go
, который, если не ошибаюсь, должен автоматически использоваться в Windows.
Итак, я думаю, что в Go есть концепция пакетов, специфичных для ОС, верно? И если да, значит ли это, что я не могу использовать, например, инструменты VSCode go для кодирования пакетов Windows в Linux?
Это, на мой взгляд, было бы крайне неудобно переключать системы, чтобы писать что-то, что работает как в Linux, так и в Windows... Хотя я полагаю, что это правда только в том случае, если мы разрабатываем в Linux, и Windows должна охватывать оба.
Но для меня не имеет смысла НЕ иметь возможность что-то разрабатывать на Linux; лучшая среда для разработки на ИМХО (кроме кода, связанного с Apple, конечно)
Я что-то упустил?
Спасибо
1 ответ
Итак, я думаю, что мой вопрос на самом деле касается больше инструментов, чем go
сам язык. gopls
это инструмент, используемый VSCode, если вы решите использовать go
языковой сервер.
Как три README
говорит, это в alpha
и не стабильный, и в репо перечислены известные проблемы, которые, кажется, являются источником моего замешательства.
Я думаю, что основная проблема, связанная с тем, что я вижу: