小编Fli*_*mzy的帖子

X没有实现Y(...方法有一个指针接收器)

关于这个" X没有实现Y(...方法有一个指针接收器) "的事情,已经有几个问答,但对我来说,他们似乎在谈论不同的事情,而不是适用于我的具体案例.

因此,我没有将问题变得非常具体,而是将其广泛和抽象化 - 似乎有几个不同的案例可以使这个错误发生,有人可以总结一下吗?

即,如何避免这个问题,如果发生,有什么可能性?谢谢.

methods pointers interface go

157
推荐指数
3
解决办法
5万
查看次数

Go中的构造函数

我有一个结构,我希望它用一些合理的默认值初始化.

通常,这里要做的是使用构造函数,但由于go不是传统意义上的OOP,因此它们不是真正的对象,也没有构造函数.

我注意到了init方法,但是在包级别.是否有类似的东西可以在结构级别使用?

如果不是在Go中这种类型的东西被接受的最佳实践是什么?

oop constructor go

156
推荐指数
8
解决办法
8万
查看次数

HTML5 - localStorage删除并清除所有数据

我需要清除我设置的所有数据localStorage.通过这个,我的意思是完全重置localStoragenull用户删除他们的帐户.

我怎么能用一个简单的功能呢?

我试过这个:

function clearLocalStorage(){
    return localStorage= null;
}
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.

html javascript jquery local-storage

149
推荐指数
4
解决办法
20万
查看次数

Golang随机数生成器如何正确播种

我试图在Go中生成一个随机字符串,这是我到目前为止编写的代码:

package main

import (
    "bytes"
    "fmt"
    "math/rand"
    "time"
)

func main() {
    fmt.Println(randomString(10))
}

func randomString(l int) string {
    var result bytes.Buffer
    var temp string
    for i := 0; i < l; {
        if string(randInt(65, 90)) != temp {
            temp = string(randInt(65, 90))
            result.WriteString(temp)
            i++
        }
    }
    return result.String()
}

func randInt(min int, max int) int {
    rand.Seed(time.Now().UTC().UnixNano())
    return min + rand.Intn(max-min)
}
Run Code Online (Sandbox Code Playgroud)

我的实施很慢.播种使用time在一定时间内带来相同的随机数,因此循环一次又一次地迭代.我该如何改进我的代码?

random go

146
推荐指数
6
解决办法
11万
查看次数

Golang如何在没有gopath的情况下导入本地包?

我已经习惯GOPATH但是对于这个当前的问题,我面临的并没有帮助.我希望能够创建特定于项目的包:

myproject/
??? binary1.go
??? binary2.go
??? package1.go
??? package2.go
Run Code Online (Sandbox Code Playgroud)

我试过多种方法,但我如何才能package1.go在工作binary1.gobinary2.go等等?

例如; 我希望能够import "package1",然后能够运行go build binary1.go,一切正常,没有错误被抛出,无法找到包GOROOTGOPATH.我需要这种功能的原因是大型项目; 我不想引用多个其他包或将它们保存在一个大文件中.

package go

145
推荐指数
7
解决办法
19万
查看次数

创建计划任务

我正在开发一个C#WPF项目.我需要允许用户创建计划任务并将其添加到Windows任务计划程序.

我怎么能去做这个以及我需要什么使用指令和参考,因为我在搜索互联网时找不到多少.

c# wpf scheduled-tasks

142
推荐指数
2
解决办法
23万
查看次数

有没有办法在Golang中每隔一段时间做一次重复的任务?

有没有办法在Go中执行重复的后台任务?我在考虑类似Timer.schedule(task, delay, period)Java 的东西.我知道我可以用goroutine做到这一点Time.sleep(),但是我想要一些容易停止的东西.

这是我得到的,但看起来很难看.有更干净/更好的方式吗?

func oneWay() {
    var f func()
    var t *time.Timer

    f = func () {
        fmt.Println("doing stuff")
        t = time.AfterFunc(time.Duration(5) * time.Second, f)
    }

    t = time.AfterFunc(time.Duration(5) * time.Second, f)

    defer t.Stop()

    //simulate doing stuff
    time.Sleep(time.Minute)
}
Run Code Online (Sandbox Code Playgroud)

go

140
推荐指数
5
解决办法
8万
查看次数

在golang中迭代时更改值

我想我有这些类型:

type Attribute struct {
    Key, Val string
}
type Node struct {
    Attr []Attribute
}
Run Code Online (Sandbox Code Playgroud)

并且我想迭代我的节点的属性来改变它们.

我本以为能够做到:

for _, attr := range n.Attr {
    if attr.Key == "href" {
        attr.Val = "something"
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于attr不是指针,这不起作用,我必须这样做:

for i, attr := range n.Attr {
    if attr.Key == "href" {
        n.Attr[i].Val = "something"
    }
}
Run Code Online (Sandbox Code Playgroud)

有更简单或更快的方式吗?有可能直接从指针中获取指针range吗?

显然,我不想仅仅为迭代更改结构,更详细的解决方案不是解决方案.

arrays for-loop go

137
推荐指数
4
解决办法
6万
查看次数

application/json和application/x-www-form-urlencoded中的差异

有什么区别

request.ContentType ="application/json; charset = utf-8";

webRequest.ContentType ="application/x-www-form-urlencoded";

json web-services http-headers

132
推荐指数
3
解决办法
7万
查看次数

函数可以作为Go中的参数传递吗?

在Java中,我可以做类似的事情__CODE__并在以后"运行"该方法中的代码.处理(匿名内部类)是一种痛苦,但它可以做到.

Go是否有一些可以促进函数/回调作为参数传入的东西?

function go

130
推荐指数
5
解决办法
11万
查看次数