我有这样的哈希
{ 55 => {:value=>61, :rating=>-147},
89 => {:value=>72, :rating=>-175},
78 => {:value=>64, :rating=>-155},
84 => {:value=>90, :rating=>-220},
95 => {:value=>39, :rating=>-92},
46 => {:value=>97, :rating=>-237},
52 => {:value=>73, :rating=>-177},
64 => {:value=>69, :rating=>-167},
86 => {:value=>68, :rating=>-165},
53 => {:value=>20, :rating=>-45}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能对它进行排序:评分?或者我应该使用一些不同的结构?
我需要为我的golang程序构建一个deb.
当我运行debuild -uc -us时告诉:
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
make[1]: Entering directory `/home/vagrant/zbus'
go clean ./zbus-cli/
make[1]: go: Command not found
make[1]: *** [clean] Error 127
make[1]: Leaving directory `/home/vagrant/zbus'
dh_auto_clean: make -j1 clean returned exit code 2
Run Code Online (Sandbox Code Playgroud)
我的go编译器安装正确,为什么它仍然没有找到命令?
去规范说:
任何其他类型T的方法集由接收器类型T的所有方法组成.相应指针类型*T的方法集是具有接收器*T或T的所有方法的集合(即,它还包含方法集T).
我理解为:T有自己的方法集,而*T有自己的方法集加上T的方法集,因为它可以取消引用接收器*T到T并调用方法.因此,我们可以使用变量类型为T的接收器*T调用某些方法.
所以我决定验证我的逻辑:
package main
import (
"fmt"
"reflect"
)
type User struct{}
func (self *User) SayWat() {
fmt.Println(self)
fmt.Println(reflect.TypeOf(self))
fmt.Println("WAT\n")
}
func main() {
var user User = User{}
fmt.Println(reflect.TypeOf(user), "\n")
user.SayWat()
}
Run Code Online (Sandbox Code Playgroud)
http://play.golang.org/p/xMKuLzUbIf
我有点困惑.看起来我可以在T上调用"of*T"方法吗?我有一个更广泛的例子http://play.golang.org/p/RROPMj534A,这也让我感到困惑.是否有一些相反的类型推断?
我错过了什么,或者我的逻辑是不正确的?
谢谢!
我有一个深层嵌套的结构,它包含两个切片,如下所示:
package main
import "fmt"
type bar struct {
v1 []int
v2 []int
}
type foo struct{ bar bar }
type tar struct{ foo foo }
func main() {
f := &tar{foo: foo{bar: bar{v1: [2], v2: [3]}}}
fmt.Printf("Hello, playground %s", f)
}
Run Code Online (Sandbox Code Playgroud)
如何初始化两个切片?或者我如何使这个代码工作?
以下是Golang Play:http://play.golang.org/p/zLutROI4YH .
我最近通过谷歌调查Golang,我遇到了以下问题.然后程序不打印任何东西.但如果我删除"go"符号,它将打印"goroutine"和"going".
package main
import "fmt"
func f(msg string) {
fmt.Println(msg)
return
}
func main() {
go f("goroutine")
go func(msg string) {
fmt.Println(msg)
return
}("going")
return
}
Run Code Online (Sandbox Code Playgroud)