web-dev-qa-db-ja.com

サードパーティのパッケージをgolangプレイグラウンドにインポートできますか?

私はグーグルで検索しましたが、答えがありませんでした。出来ますか?はいの場合、それを行う方法は?

Go Playgroundリンク: https://play.golang.org/

22
Shuo

2019年5月14日以降、 現在可能Brad Fitzpatrick から)!

#golangプレイグラウンドは、サードパーティのインポートをサポートするようになり、 https://proxy.golang.org/ を介してそれらをプルします。

例: https://play.golang.org/p/eqEo7mqdS9l ????

マルチファイルのサポートと他のいくつかのことは次にあります。
バグを報告する _golang/go_ issue 31944 、またはここツイーターで。

「複数ファイル」サポートについては、2019年5月16日以降、「 どのパッケージを移動プレイグラウンドにインポートできますか?」を参照してください。 ": ここの例 を参照)

netbrain 提案 コメント内 別の

遊び場で:

_package main

import (
    "fmt"

    "gonum.org/v1/gonum/mat"
)

func main() {
    v1 := mat.NewVecDense(4,[]float64{1,2,3,4})
    fmt.Println(mat.Dot(v1,v1))
}
_

mat.NewVecDense() を使用して列ベクトルを作成し、 mat.Dot() を使用して要素の合計を返す、「30」を指定します- _v1_と_v1_の賢明な積

重要なのは: _gonum/mat_ではなくGo Standard Library の一部です。


元の回答:

GoPlaygroundに関する最も完全な記事は " Inside the Go Playground "のままで、次のように記載されています。

これらのプロセスはいずれも、リモートパッケージ(インターネット経由でアクセスされる)のインポートをサポートしていません。
これは非常に自己完結型のシステムであり(ローカルで実行することも、play.golang.orgから使用することもできます)、ネットワークのように複数の機能がスタブまたは偽造されています。

ファイルシステムと同様に、遊び場のネットワークスタックは、syscallパッケージによって実装されたインプロセスの偽物です。
プレイグラウンドプロジェクトがループバックインターフェイス(127.0.0.1)を使用できるようにします。
他のホストへのリクエストは失敗します


2017年の更新:

選択肢があります:

ただし、公式のGo Playgroundサービスを使用してGoコードをビルドおよび実行しているため、外部からのインポートは許可されません。

31
VonC

私はそれを自分で試していませんが xiam/go-playground これが可能であることを示しています:

カスタムパッケージのインポート

プレイグラウンドユーザーは、Go標準ライブラリの一部ではないパッケージをインストールまたは使用できないことに注意してください。特別なパッケージを紹介する場合は、サンドボックスの上にわずかに異なるDockerイメージを作成する必要があります。 unsafebox.。

(Dockerfileを変更してこれを行う方法の例が続きます。)

これは、xiam/go-playgroundプロジェクトに示されているように、コンパイルがカスタムサンドボックス内で実行される(または少なくとも実行できる)ことを示しているように見えます。したがって、これが可能になります(@VonCの回答で示されているようにplay.golang.orgは必要ありません)。 )。

これを自分でテストする機会があれば、この回答をより詳細に更新します。

1
Brad Peabody