小编zzz*_*zzz的帖子

将数据从字节切片解码到Uint32

package main

import (
        "bytes"
        "encoding/binary"
        "fmt"
)

func main() {
        aa := uint(0xFFFFFFFF)
        fmt.Println(aa)
        byteNewbuf := []byte{0xFF, 0xFF, 0xFF, 0xFF}
        buf := bytes.NewBuffer(byteNewbuf)
        tt, _ := binary.ReadUvarint(buf)
        fmt.Println(tt)
}
Run Code Online (Sandbox Code Playgroud)

需要将4字节数组转换为uint32,但为什么结果不一样?go verion:beta 1.1

go

4
推荐指数
2
解决办法
4708
查看次数

exec格式错误

我最近在我的电脑上安装了lubuntu 11.04。按照本指南从源头安装go,在我的电脑上安装golang进行得很好。为了测试我的安装,我运行hello.go并收到以下错误消息:

fork/exec /tmp/go-build748212890/command-line-arguments/_obj/a.out: exec format error
Run Code Online (Sandbox Code Playgroud)

我在google上进行了查找,发现的更相关的结果之一是说要删除软件包,然后重新安装。那没有帮助。

您能否告诉我是什么导致了此错误,以及如何解决此问题?

感谢,并有一个愉快的一天!

go

3
推荐指数
1
解决办法
7743
查看次数

为什么我的goroutines会相互等待而不是在完成后完成?

我是Go的新手,我的代码中有一件事我不明白.我写了一个简单的bubblesort算法(我知道它不是很有效;)).现在我想开始3个GoRoutines.每个线程应该独立于其他线程对其数组进行排序.完成后,功能.应打印"完成" - 消息.

这是我的代码:

package main 

import (
    "fmt"
    "time" //for time functions e.g. Now()
    "math/rand" //for pseudo random numbers
)


/* Simple bubblesort algorithm*/
func bubblesort(str string, a []int) []int {
    for n:=len(a); n>1; n-- {
        for i:=0; i<n-1; i++ {
            if a[i] > a[i+1] {
                a[i], a[i+1] = a[i+1], a[i] //swap
            }
        }
    }
    fmt.Println(str+" done") //done message
    return a
}

/*fill slice with pseudo numbers*/
func random_fill(a []int) []int {
    for i:=0; i<len(a); i++ { 
        a[i] = …
Run Code Online (Sandbox Code Playgroud)

concurrency multithreading go bubble-sort goroutine

3
推荐指数
1
解决办法
807
查看次数

有没有像BidiMap这样的东西?

嗨,我需要做一些双向锁定,并需要一些地图结构,如地图[键] [关键]是否有人认为在Go?或者最好的方法是什么?

go data-structures

3
推荐指数
1
解决办法
189
查看次数

如何使用reflect按名称获取包常量值?

这是一个具有一些常量的包。

package object

type Languaege int

const (
    Javascript Languaege = iota
    C
    Cpp
    Shell
)
Run Code Online (Sandbox Code Playgroud)

//==========================================

如果我知道类型语言的名称,如何获取它的值?

package main
func GetConstByName(name String) {
    ....
}
lang := GetConstByName("Shell")
Run Code Online (Sandbox Code Playgroud)

reflection go

2
推荐指数
1
解决办法
3146
查看次数

创建一个多维数组

如何在Go中创建数组数组?

go

2
推荐指数
2
解决办法
535
查看次数

Go编译器运行时的语法和语义

我在go运行时查看了runtime.c文件

  /usr/local/go/src/pkg/runtime
Run Code Online (Sandbox Code Playgroud)

并看到以下函数定义:

   void
   runtime?pprof·runtime_cyclesPerSecond(int64 res)
   {...}
Run Code Online (Sandbox Code Playgroud)

int64
runtime·tickspersecond(void)
{...}
Run Code Online (Sandbox Code Playgroud)

并且有很多声明像

void    runtime·hashinit(void);
Run Code Online (Sandbox Code Playgroud)

在runtime.h中.

我之前没有看到过这种C语法(特别是带有斜杠的语法似乎很奇怪).这是std C或某种plan9方言的一部分吗?

c namespaces go

2
推荐指数
2
解决办法
143
查看次数

如何修改for循环中的切片?

我的阅读清单中有一篇文章.每篇文章都有属性"FeedURL",其中包含文章来源的网址.当我取消订阅Feed时,我希望能够删除包含该Feed的每篇文章.

type Article struct {
    FeedURL string
    URL     string // should be unique
    // ... more data
}

func unsubscribe(articleList []Article, url string) []Article {
   // how do I remove every Article from articleList that contains url?
}

func main() {
    myArticleList := []Article{
        Article{"http://blog.golang.org/feed.atom", "http://blog.golang.org/race-detector"},
        Article{"http://planet.python.org/rss20.xml", "http://archlinux.me/dusty/2013/06/29/creating-an-application-in-kivy-part-3/"},
        Article{"http://planet.python.org/rss20.xml", "http://feedproxy.google.com/~r/cubicweborg/~3/BncbP-ap0n0/2957378"},
        // ... much more examples
    }

    myArticleList = unsubscribe(myArticleList, "http://planet.python.org/rss20.xml")

    fmt.Printf("%+v", myArticleList)
}
Run Code Online (Sandbox Code Playgroud)

解决这个问题的有效方法是什么?

起初我的代码看起来像这样取消订阅:

func unsubscribe(articleList []Article, url string) []Article {
    for _, article := range articleList {
        if …
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
272
查看次数

如何用零填充数字?

假设我想在Go中输出一个数字:

4 => "004"
23 => "023"
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

go

0
推荐指数
1
解决办法
253
查看次数

可以修改其他包中定义的类型的方法集吗?

内置的loglog.Logger不提供ErrorWarning方法,如Python.

所以我想Logger使用以下代码为内置类型编写一个:

func (l *Logger) Error(v interface{}) {
    info := fmt.Sprintf("ERROR: %v", v)
    l.Println(info)
}
Run Code Online (Sandbox Code Playgroud)

我把上面的代码放在一个文件morelog.go下面GOPATH/src/log.

main.go我写的:

logger := log.New(os.Stdout, "Test", 1)
logger.Error("Error in main.")
Run Code Online (Sandbox Code Playgroud)

当我跑步时go build,我得到:

./main.go:124: logger.Error undefined (type *log.Logger has no field or method Error)
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过定义一个新类型并在该类型上定义方法来实现类似的目标.但我认为如果我可以将方法直接添加到buit-in类型可能会更好.

logging go

-1
推荐指数
1
解决办法
341
查看次数