GO语言学习笔记8月27日

1.Go 程序是通过 package 来组织的。只有 package 名称为 main 的包可以包含 main 函数。一个可执行程序有且仅有一个 main 包。通过 import 关键字来导入其他非 main 包。可以通过 import 关键字单个导入。
2.通过 const 关键字来进行常量的定义。通过在函数体外部使用 var 关键字来进行全局变量的声明和赋值。通过 type 关键字来进行结构(struct)和接口(interface)的声明。通过 func 关键字来进行函数的声明。
3.可见性规则
Go语言中,使用首字母的大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包所调用,外部用大写,内部用小写。
例:
//函数名首字母小写即为 private :
func getId() {}
//函数名首字母大写即为 public :
func Printf() {}
//Go 语言的包引入一般为: 项目名/包名
import "test/controllers"
//方法的调用为: 包名.方法名()
controllers.Test() //本包内方法名可为小写,包外调用方法名首字母必须为大写
Print() 函数将参数列表 a 中的各个参数转换为字符串并写入到标准输出中。
非字符串参数之间会添加空格,返回写入的字节数。
4 .Go 语言的基础组成有以下几个部分:
包声明
引入包
函数
变量
语句 & 表达式
注释
5.fmt 包表示输入和输出,在要用到输入和输出时应声明 import 'fmt',
6.Go 语言中变量的声明必须使用空格隔开,如:
var age int
语句中适当使用空格能让程序更易阅读。
7.Go语言一般不用分号结束。
8.在 Go语言 中,布尔值的类型为 bool,值是 true 或 false,默认为 false。
9.package main
var a = "我吃面皮子,你喝油辣子。"
var b string = "nigoule"
var c bool
func main(){
println(a, b, c)
}//这里的string 可以省略
10 .(1)package main
var x, y int
var ( // 这种因式分解关键字的写法一般用于声明全局变量
a int,
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"
func main()
{
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
(2)package main
import "fmt"
var x, y int
var ( // 这种因式分解关键字的写法一般用于声明全局变量
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
func main()
{
g, h := 123, "hello"
fmt.Println(x, y, a, b, c, d, e, f, g, h) //fmt.Println表示外部调用,别忘记提前声明要调用的包
}
11 我们知道可以在变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。a 和 b 的类型(int 和 bool)将由编译器自动推断。这是使用变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。使用操作符 := 可以高效地创建一个新的变量,称之为初始声明。
12 如果你想要交换两个变量的值,则可以简单地使用 a, b = b, a,两个变量的类型必须是相同。空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。_ 实际上是一个只写变量,你不能得到它的值。这样做是因为 Go 语言中你必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。
13 iota用法(易错)
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
iota 可以被用作枚举值:
例:
package main
import "fmt"
func main()
{
const (
a = iota//0
b//1
c//2
d = "ha"//独立值,iota += 1
e//"ha"iota += 1默认继承是上一个数据
f = 100//iota +=1
g//100iota +=1默认继承上一个数据
h = iota//7,恢复计数
i//8)
fmt.Println(a,b,c,d,e,f,g,h,i)}
输出为:0 1 2 ha ha100 100 7
14<< 表示左移的意思
package main
import "fmt"
var i int
var j int
func main(){


i=3<<0
j=4<<2
fmt.Println(,i,j)
}
输出结果为:3,16
解释:3的二进制为011 左移0位不变,
【GO语言学习笔记8月27日】4的二进制为0100,左移2位变为010000,即为16

    推荐阅读