" "github.com/mattn/go-gtk/glib" "github … .com/mattn/go-gtk/gtk" ) func HandleSignal
:;" id="go" class="go">跳转
如下命令: go get github.com/mattn/go-gtk/gtk
error接口的使用: package main import ( "errors" "fmt" ) func main() { var err1 error = fmt.Errorf("%s", "This is error1") err2 := fmt.Errorf("%s", "this is error2") fmt.Println("error = ", ...
接口的定义和实现: package main import "fmt" type Humaner interface { sayhi() } type Student struct { id int name string } type Teacher struct { addr string group string } func (temp *Student) sayhi() { fmt.Printf("%d %s\n", temp.id, temp.name) ...
面相对象: package main import "fmt" type long int // 方法,面向对象编程 func (tmp long) Add(other long) long{ return tmp + other } func main(){ var a long = 2 b := a.Add(3) fmt.Println(b) } 结构体添加方法: package main import "fmt" type Person struct{ ...
匿名成员的使用: package main import "fmt" type Person struct{ name string sex byte age int } type Student struct{ Person id int addr string } func main() { // 匿名字段初始化 var s1 Student = Student{Person{"hello",'m',18},1,"aaaaaa" ...
结构体定义与赋值: package main import "fmt" type Student struct { id int name string sex byte age int addr string } func main() { // 初始化并赋值,且每个元素都要赋值 var s1 Student = Student{1, "aaa", 'm', 18, "bbbbbb"} fmt.Println(s1) // 指定 ...
map的基本操作:map为无序的键值对集合 package main import "fmt" func main() { var m1 map[int]string // 创建map fmt.Println(m1, len(m1)) m2 := make(map[int]string) // 创建map fmt.Println(m2, len(m2)) m3 := make(map[int]string, 2) // 指定长度 fmt.Println(m3, len(m3)) m3[ ...
切片的底层是数组 append 当原有容量不够时将会创建一个新的数组,并将原有的值复制到新数组里面。容量小于1000时会以两倍的形式增长,超过1000后以1.25倍的形式增长。 append可以合并多个切片,append(s1, s2 ...) // 创建两个切片,并分别用两个整数进行初始化 s1 := []int{1, 2} s2 := []int{3, 4} // 将两个切片追加在一起,并显示结果 fmt.Printf("%v\n", append(s1, s2...)) ...
几种方法: history.go(0) location.reload() location=location
package main import "fmt" func main() { var id [50]int // 给数组赋值 for i := 0; i < len(id); i++ { id[i] = i fmt.Printf("id[%d] = %d\n", i, id[i]) } } package main import "fmt" func main() { var a [10]int var b [5]int fmt. ...
package main import "fmt" func main() { var a int = 10 fmt.Printf("a = %d\n", a) fmt.Printf("&a = %v\n", &a) var p *int p = &a fmt.Printf("p = %v,&a = %v\n", p, &a) *p = 666 // 给指针所指向的内存地址赋值 fmt. ...
如果在同一个 GOPATH 环境变量所指的目录内,函数之间的可以直接调用无需使用 import 导入。 环境变量指导 src 目录。 可见性:结构体、函数名、类型名首字母必须要大写才能被其他包调用,如果首字母小写只能在同一个包中使用。
package main import "fmt" import "os" func main() { list := os.Args n := len(list) for i := 0; i < n; i++ { fmt.Printf("list[%d] = %s\n", i, list[i]) } for i, data := range list { fmt.Printf("list[%d] = %s\n", i, ...
构造函数:初始化程序,赋予初始值等工作 析构函数:函数结束前的清理工作 defer 类似于其它语言的析构函数,在程序的最后调用 package main import "fmt" func main() { defer fmt.Println("bbb") fmt.Println("aaa") } 上面的函数先输出的是aaa 多个 defer 时,先写的后执行 代码有内存泄漏等错误时 defer 也能够调用到 与匿名函数搭配使用: package ...
package main import "fmt" func main() { // 匿名函数 f1 := func() { fmt.Println("aaa") } f1() // 闭包 func() { fmt.Println("bbb") }() // 带参数匿名函数 f2 := func(a int) { fmt.Println(a) } f2(32) // 定义匿名函数并调用 func(i, j int) { fmt.Printf(& ...
函数类型: package main import ( "fmt" ) func add(a, b int) int { return a + b } type FuncType func(int, int) int // 定义函数类型 func main() { var fTest FuncType fTest = add // 函数赋值给函数类型,只要参数和返回值类型都相同即可赋值,可用此方法来实现多态 res := fTest(1, 1) fmt.Println(res) } 多 ...
像中。 可以用Go语言的通配
package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) for i := 0; i < 10; i++ { fmt.Println("rand: ", rand.Int()) fmt.Println("rand: ", rand.Intn(100)) //100 之内 ...