Есть ли у Go пакеты для конкретных ОС, которые нельзя использовать в другой ОС?

Я не могу назвать себя абсолютным новичком в go, и я определенно не эксперт.

Сегодня я заметил кое-что ОЧЕНЬ непонятное. Я экспериментировал с сокетами Unix и именованными каналами Windows, и, согласно моим исследованиям, есть 2 пакета, поддерживающих именованные каналы Windows:

Моя ОС - 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и не стабильный, и в репо перечислены известные проблемы, которые, кажется, являются источником моего замешательства.

Я думаю, что основная проблема, связанная с тем, что я вижу:

x / tools / gopls: не обрабатывает теги сборки

Другие вопросы по тегам