Акцент на вопрос находится в конце заголовка. Пытался из моего воображения.
Представьте, что вы пережили ядерную войну, и вы всего лишь команда выживших в своем автоматизированном хранилище, операционная логика которого иногда записывается на голанге.
Теперь у вашего хранилища есть проблемы с подачей кислорода (внутри хранилища) из-за (теперь хорошо известной) ошибки кода. И как программист вы должны определенно это исправить! У вас наверняка возникнут проблемы с определением того, что такое github.com/...
или mydomain.com
, интернета больше нет, да и вам не захочется возиться с доменами локально!
У вас следующая структура папок:
vault/
main.go
oxygenapi/
oxygenapi.go
Внутри main.go
у вас есть:
package main
import "./oxygenapi"
...
И oxygenapi.go
просто начинается с:
package oxygenapi
...
Обычно вам не нравится имитировать локальный git
сервер (исходники git были сожжены, во время ядерной войны их не было единого источника, и у вас было все на git, только некоторая локальная копия вашего рабочего дерева исходных текстов)
Теперь вы просто хотите, чтобы система импорта работала, потому что она связана с подачей кислорода. У тебя нет времени! А теперь представьте, что его жизненно необходимо как можно скорее оживить!
Но перекомпилировать его больше нельзя, потому что интернета больше нет. Это дает следующую ошибку:
D:\vault> go run .
build _/D_/vault/oxygenapi: cannot find module for path _/D_/vault/oxygenapi
СЛЕДУЕТ ЛИ Я НАПИСАТЬ ЭТО НА C? PASCAL? VISUAL BASIC? Почему мы когда-либо выбрали go? .. Должен ли этот язык выжить?
replace
или goproxy (который может быть основан на файловой системе без помощи git) вместо локального импорта (не знаю, почему это вас убьет); скопируйте все в стандартную библиотеку и перекомпилируйте компилятор go; взломать исходный код компилятора go, чтобы разрешить локальный импорт; возьмите старую версию компилятора go, которая допускает локальный импорт; напишите инструмент go, чтобы проанализировать исходный код вашего кода и упаковать каждый импорт в один пакет с добавлением префикса к их пространству имен; Выбери один. Не зная, чем пойти на компромисс, есть почти бесконечные возможности. - person leaf bebop   schedule 23.12.2019GOPATH
и установитеGO11MODULE=off
. Давно не пробовал, не знаю, работает ли он с текущей или новой версией официального компилятора Go. - person leaf bebop   schedule 23.12.2019oxygenapi
в общий c-режим (.so
или.dll
) и загрузить его с помощью c или cgo. Но, честно говоря, я не вижу, что такого сложного в использовании go-мода, документ прилагается к компилятору. - person leaf bebop   schedule 23.12.2019main
to go, пусть она будет вызыватьсяoxygenapi.ResumeOxygenSupply()
, чтобы они могли выжить. Любой, кто говорит о локальном импорте против глобального против чего бы то ни было - он уже мертв - так что не стоит даже слушать !. Как мы можем стать нашей счастливой группой? - person xakepp35   schedule 23.12.2019go mod init "tm.p/x" and change import to
import tm.p / x /xygenapi` и все. - person leaf bebop   schedule 23.12.2019