Как я могу использовать подпакеты с Go в облачных функциях Google?

Нет, Swing не является потокобезопасным. Используйте что-то вроде

Runnable doWorkRunnable = new Runnable() {
    public void run() { myFrame.dispose(); }
};
SwingUtilities.invokeLater(doWorkRunnable);
2
задан Tyler Bui-Palsulich 18 January 2019 в 13:56
поделиться

1 ответ

Вы можете использовать подпакеты с модулями Go . Модули Go - это новое решение Go для управления зависимостями - они позволяют вам работать за пределами GOPATH и позволяют вам управлять точными версиями каждой вашей зависимости.

Модули также позволяют вам определять группу пакетов Go с одинаковым префиксом пути импорта. Когда вы пишете функцию, это позволяет вам импортировать другие пакеты в ваш модуль.

Развертываемая функция должна быть в корне вашего модуля.

Вот пример структуры файла и как будут импортироваться пакеты:

.
├── cmd
│   └── main.go # Useful for testing. Can import and setup your function.
├── function.go # Can import example.com/foo/helperpackage
├── function_test.go
├── go.mod # module example.com/foo
└── helperpackage
    └── helper.go

Эта настройка имеет вашу функцию в function.go и протестирована в function_test.go. Они находятся в модуле с именем example.com/foo. helperpackage можно импортировать с помощью function.go, используя example.com/foo/helperpackage.

Здесь также есть каталог cmd, который может быть полезен для локального тестирования. Вы можете импортировать example.com/foo и запустить HTTP-сервер, который регистрирует вашу функцию как обработчик HTTP. Например:

package main

import (
    "log"
    "net/http"

    "example.com/foo"
)

func main() {
    http.Handle("/HelloHTTP", foo.HelloHTTP)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

Примечание. Вы могли бы использовать каталог поставщиков для достижения того же результата. Но все пакеты, которые импортирует ваша функция, должны находиться в каталоге vendor (с полным путем импорта), который работает, но неудобен в обслуживании. Редко копировать подпакеты в каталог вашего поставщика, поэтому я бы не рекомендовал это.

0
ответ дан Tyler Bui-Palsulich 18 January 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: