当我从这个项目中休息时,出现了一个奇怪的问题。启动 Goland 后,我在尝试运行我的项目时遇到了很多错误。
构建我的一个包时的具体错误是:
start.go: package project/game is not in GOROOT (C:\Go\src\project\game)
我在下面有一个文件夹结构 C:\Users\username
go
|-src
|-project
|-game
|-entity
|-whatever.go
|-game_stuff.go
|-server
Run Code Online (Sandbox Code Playgroud)
我的环境变量是这样的:
GOROOT=C:\Go
GOPATH=C:\Users\ketchup\go
Run Code Online (Sandbox Code Playgroud)
对于每个模块(项目/游戏/实体、项目/游戏、项目/服务器),我做了一个git mod init.
在构建时,Goland 将尝试运行:
C:\Go\bin\go.exe build -o C:\Users\ketchup\AppData\Local\Temp\___go_build_project_server.exe project/server
Run Code Online (Sandbox Code Playgroud)
并返回错误。
谁能帮我解决这个问题?有点迷失,因为我上次打开 Goland 时运行良好。甚至不确定要看什么方向 - 我对 Go 还很陌生,我不确定要看什么文档:\谢谢大家!
在 Go 中,我们可以使用:
type Data struct {
lock *sync.Mutex
}
Run Code Online (Sandbox Code Playgroud)
或者
type Data struct {
lock sync.Mutex
}
Run Code Online (Sandbox Code Playgroud)
并且,像这样使用:
func (d *Data) Update() {
d.lock.Lock()
defer d.lock.Unlock()
// update
}
Run Code Online (Sandbox Code Playgroud)
我能想到的区别是只*sync.Mutex需要实例化即可使用。
是什么区别sync.Mutex和*sync.Mutex围棋,哪一个更好?
如果我有
array1 := []int{1, 3, 4, 5}
array2 := []int{2, 4, 6, 8}
Run Code Online (Sandbox Code Playgroud)
我想插入array2[2]即6在array1[1]如之前3使array1成为一片{1, 6, 3, 4, 5}.我该怎么做?
我在网上阅读的大多数技术都涉及使用:操作符,但也会导致插入剩余的元素.如何在切片中的索引处附加单个值?
我有以下代码片段,例如
package main
import (
"github.com/ajstarks/svgo"
"os"
_ "image"
_ "fmt"
)
func main(){
width := 512
height := 512
canvas := svg.New(os.Stdout)
canvas.Start(width,height)
canvas.Image(0,0,512,512,"src.jpg","0.50")
canvas.End()
}
Run Code Online (Sandbox Code Playgroud)
我想将由此代码创建的 svg 导出为 jpeg 或 png 或 svg 比方说。如何做到这一点我不明白。我可以使用 imagemagick 或其他东西,但为此我需要 SVG 的东西。请有人帮我解决这个问题。
使用Laravel 5我试图删除控制器中的单个记录,这是我的代码:
public function destroy($id)
{
$employee = Employee::find($id);
$employee->delete();
return Redirect::route('noorsi.employee.index');
}
Run Code Online (Sandbox Code Playgroud)
我的浏览页面代码是:
<td><a href="employee/{{$employee->id}}/destroy" class="btn btn-default">Delete</a></td>
Run Code Online (Sandbox Code Playgroud)
我的路线是:
Route::delete(employee.'/{id}', array('as' => 'noorsi.employee.destroy','uses' => Employeecontroller.'@destroy'));
Run Code Online (Sandbox Code Playgroud)
那没用.
如何修复实施?
假设我的 IP 地址是:192.65.35.12。在这台机器上,我正在运行节点服务器。我可以使用这个 url:http://localhost:3000/在同一台机器上访问网页。
但是,如果我尝试从具有 ip 的远程机器访问节点服务器192.65.35.11。这是行不通的。我使用以下网址从远程机器访问网址:
http://192.65.35.12:3000/
我正面临网络连接问题。
做,我需要更改 node.js 中的任何设置以进行远程访问。
那么,如何从远程机器访问节点服务器。
我们正在使用 Go 模块。我想在 CLI 中获取模块的特定版本。是否可以?
如果你好奇,原因是我想添加以下generate命令:
//go:generate go run github.com/golang/mock/mockgen -source="$GOPATH/pkg/mod/mymodules.com/mymodule@${VERSION}/module.go" -destination=module_mock.go
Run Code Online (Sandbox Code Playgroud)
所以我需要以某种方式获得版本
我正在尝试将指向结构的指针分配给相同类型的已初始化结构指针的值。
做一个简单的服务定位器
代码是这样的
package main
import (
"fmt"
"reflect"
)
type Concrete struct {}
func (c *Concrete) Do(){}
type Doer interface {
Do()
}
func main() {
l := ServiceLocator{}
l.Register(&Concrete{})
var x Doer
if l.Get(&x); x!= nil {
fmt.Println("by interface pointer ok")
}
// This is not possible in my understanding
//var z Doer
//if l.Get(z); z!= nil {
// fmt.Println("by interface ok")
//}
var y *Concrete
if l.Get(y); y!= nil {
fmt.Println("by struct pointer ok")
}
}
type …Run Code Online (Sandbox Code Playgroud) 使用包https://github.com/golang/crypto/tree/master/ed25519即时尝试获取给定私钥的公钥.
这些数据来自http://www.bittorrent.org/beps/bep_0044.html:test 2(可盐加盐)
问题是,ed25519.Public()在用给定的私钥输入时不会返回相同的公钥.golang实现返回PVK的最后32个字节.但在我的测试数据中,这是出乎意料的.
这里的代码https://play.golang.org/p/UJNPCyuGQB
package main
import (
"encoding/hex"
"golang.org/x/crypto/ed25519"
"log"
)
func main() {
priv := "e06d3183d14159228433ed599221b80bd0a5ce8352e4bdf0262f76786ef1c74db7e7a9fea2c0eb269d61e3b38e450a22e754941ac78479d6c54e1faf6037881d"
pub := "77ff84905a91936367c01360803104f92432fcd904a43511876df5cdf3e7e548"
sig := "6834284b6b24c3204eb2fea824d82f88883a3d95e8b4a21b8c0ded553d17d17ddf9a8a7104b1258f30bed3787e6cb896fca78c58f8e03b5f18f14951a87d9a08"
// d := hex.EncodeToString([]byte(priv))
privb, _ := hex.DecodeString(priv)
pvk := ed25519.PrivateKey(privb)
buffer := []byte("4:salt6:foobar3:seqi1e1:v12:Hello World!")
sigb := ed25519.Sign(pvk, buffer)
pubb, _ := hex.DecodeString(pub)
sigb2, _ := hex.DecodeString(sig)
log.Println(ed25519.Verify(pubb, buffer, sigb))
log.Printf("%x\n", pvk.Public())
log.Printf("%x\n", sigb)
log.Printf("%x\n", sigb2)
}
Run Code Online (Sandbox Code Playgroud)
如何使用golang生成与bep相同的公钥?
go ×8
canvas ×1
cryptography ×1
datetime ×1
ed25519 ×1
go-modules ×1
goland ×1
gomock ×1
imagemagick ×1
laravel ×1
laravel-5 ×1
mutex ×1
node.js ×1
php ×1
slice ×1