d1sbb


Home | Message | Rev Shell | About | Links

学习go笔记


变量

a := "aaa" 冒号为定义相当于var,只能在局部变量使用。

常量与iota

iota只能够配合const() 一起使用,iota只有在const进行累加效果。

const(
	a, a1= iota,   iota+2  //默认为0,之后依次累加+1
	b, b1	// 1,3
	c, c1	//  2,4
)

函数

func foo(a string, b int) (r1 int, r2 int) {
	fmt.Println("a =", a)
	fmt.PrintIn("b = ", b)
	//r1 r2 属于foo的形参初始化默认的值是0
	//r1 r2 作用域空间 是foo 整个函数体的{}空间
	fmt.PrintIn("r1 = ", r1)
	fmt.Println("r2 = ", r2)
	//给有名称的返回值变量赋值
	r1 = 1000
	r2 = 2000
	return
}

导包特性

在import导其他包时,其他包里API对外公开 首字母大写代表public,小写私有。

在import导包时,匿名导包 _ "lib1" 代表只调用lib1的init()

import (
	mylib "GolangStudy/lib1" //起别名mylib
	. "GolangStudy/lib2" //.代表直接导入到当前包 不建议
)
func main() {
	mylib.Lib1Test() //调用别名mylib
	Lib2Test() //.代表直接导入到当前包 直接调用
}

指针

func main() {
	var a int = 10
	var p *int // *int 中的*表示指针类型

	p=&a // &表示传的地址
	fmt.Println(&a) //0x123
	fmt.Println(p) //0x123

	var pp **int // 二级指针
	pp = &p
	fmt.Println(&p) //0x456
	fmt.Println(pp) //0x456

持续更新中…