0%

Go语言基础--查漏补缺


#25个关键词

1
2
3
4
5
break    default      func    interface    select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

–来源于W3Cschool–Go web编程


#Go程序是通过package来组织的

  • 每一个可独立运行的Go程序,必定包含一个package main,在这个main包中必定包含一个入口函数main,而这个函数既没有参数,也没有返回值。

  • Go是天生支持UTF-8的(字符串都是采用UTF-8字符集编码 ),任何字符都可以直接输出,你甚至可以用UTF-8中的任何字符作为标识符

–来源于W3Cschool–Go web编程


# :=符号只能在函数内部使用,在函数外部使用则无法编译通过

–来源于W3Cschool–Go web编程


#已声明但未使用的变量会在编译阶段报错

–来源于W3Cschool–Go web编程


#Go 常量和一般程序语言不同的是,可以指定相当多的小数位数(例如200位), 若指定給float32自动缩短为32bit,指定给float64自动缩短为64bit

–来源于W3Cschool–Go web编程


#make用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配:

–来源于W3Cschool–Go web编程


#new(T)分配了零值填充的T类型的内存空间,它返回了一个指针,指向新分配的类型T的零值

1
new 返回指针

make和new的区别:

–来源于W3Cschool–Go web编程


#goto语句的标签名大小写是敏感的

–来源于W3Cschool–Go web编程


#go语言没有while关键词,但是:

1
2
3
4
sum := 1
for ; sum < 1000; {
sum += sum
}

如上,可以像这样构建一个while循环功能

–来源于W3Cschool–Go web编程


#(swith case):我们把很多值聚合在了一个case里面,同时,Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
integer := 6
switch integer {
case 4:
fmt.Println("The integer was <= 4")
fallthrough
case 5:
fmt.Println("The integer was <= 5")
fallthrough
case 6:
fmt.Println("The integer was <= 6")
fallthrough
case 7:
fmt.Println("The integer was <= 7")
fallthrough
case 8:
fmt.Println("The integer was <= 8")
fallthrough
default:
fmt.Println("default case")
}

上面程序的结果

1
2
3
4
The integer was <= 6
The integer was <= 7
The integer was <= 8
default case

–来源于W3Cschool–Go web编程


#程序执行过程:main包中的其他被导入的包–>包中的包级常量和变量初始化–>init函数(如果有的话)–>包加载完后就对main中的包级常量和变量进行初始化,然后执行main包中的init函数–>最后执行main中的函数:

{ % asset_img 程序执行过程.png 程序执行过程 % }
–来源于W3Cschool–Go web编程


坚持原创技术分享,您的支持将鼓励我继续创作.