我可以将第三方套餐导入golang游乐场吗?

时间:2015-01-07 03:54:04

标签: go go-playground

我用谷歌搜索但没有回答。可能吗?如果是的话,该怎么做?

Go Playground链接:https://play.golang.org/

2 个答案:

答案 0 :(得分:19)

自2019年5月14日起,it is now possible(来自Brad Fitzpatrick)!

  

#golang游乐场现在支持第三方导入,通过https://proxy.golang.org/

将其拉入      

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

     

多文件支持&接下来几乎没有其他事情   报告golang/go issue 31944处的错误,或推文上的错误。

(在"多个文件"支持,请参阅,自2019年5月16日起," Which packages may be imported in the go playground?":请参阅{{ 3}})

example here建议netbrain另一个in the comments

在操场上:

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))
}

woud给出' 30',使用example创建列向量,mat.NewVecDense()返回v1v1的元素乘积之和{1}}

重点是:mat.Dot() 不是 gonum/mat的一部分。


原始答案:

Go Playground上最完整的文章仍然是" Go Standard Library",其中提及:

这些进程都不支持导入远程包(可通过互联网访问) 它是一个非常独立的系统(您可以在本地运行以及从play.golang.org使用它),具有多个功能存根或伪造,如网络:

  

与文件系统一样,playground的网络堆栈是由syscall包实现的进程内伪造的。
  它允许游乐场项目使用环回接口(127.0.0.1)   对其他主​​机的请求将失败


2017年更新:

你有其他选择:

但他们仍然使用官方Go Playground服务来构建和运行Go代码,因此仍然不允许外部导入。

答案 1 :(得分:1)

我自己没有尝试过,但xiam/go-playground表明这是可能的:

  

导入自定义套件

     

请记住,游乐场用户无法安装或使用不属于Go标准库的软件包,如果您想展示一个特殊的软件包,您必须创建一个稍微不同的docker沙箱或不安全箱顶部的图像...

(后面是如何通过Dockerfile修改来执行此操作的示例。)

这似乎表明编译是(或至少可以)在xiam / go-playground项目中显示的自定义沙箱内执行,从而使这成为可能(不需要play.golang.org,如下所示) @ VonC的回答)。

如果我有机会自己测试一下,我会更详细地更新这个答案。