go语言第三天

来源:互联网 发布:淘宝服装店铺介绍范文 编辑:程序博客网 时间:2024/05/29 08:34

第4章:基本结构和基本数据类型

go的源文件是以.go结尾,文件名不能包含空格和其它特殊字符,不过可以用_下划线

 

代码区分大小写也没什么好说的,来记下标识符的注意事项

有效的标识符必须以字符(可以使用任何 UTF-8 编码的字符或 _ )开头,然后紧跟着 0 个或多个字符或 Unicode 数字

比如:X56,group1,_x23,i,өԑ12

 

几个不行的例子

以下是无效的标识符:

1ab(以数字开头),case( Go 语言的关键字),a+b(运算符是不允许的)

 

go的25个关键字或保留字

 

breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar

 

go还有36个预定义标识符,代表一些基本类型和函数

 

appendboolbytecapclosecomplexcomplex64complex128uint16copyfalsefloat32float64imagintint8int16uint32int32int64iotalenmakenewnilpanicuint64printprintlnrealrecoverstringtrueuintuint8uintptr

 

包的概念、导入与可见性

每个 Go 文件都属于且仅属于一个包,并且在源文件中非注释的第一行指定包名,几个go文件可以在一个包中,因些包名和文件名也不用相同,

main包比较特殊  package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包

 

go的编译过程比较特别

Go 中的包模型采用了显式依赖关系的机制来达到快速编译的目的,编译器会从后缀名为 .o 的对象文件(需要且只需要这个文件)中提取传递依赖类型的信息。

如果 A.go 依赖 B.go,而 B.go 又依赖 C.go

  • 编译 C.go, B.go, 然后是 A.go.
  • 为了编译 A.go, 编译器读取的是 B.o 而不是 C.o.

这种机制对于编译大型的项目时可以显著地提升编译速度。

 

可以通过import关键字来导入一个包,使用方式有以下几种

import "fmt"

import "os"

 

import "fmt"; import "os"

 

import (   

 "fmt" 

   "os"

)

 

import ("fmt", "os")

 

注意,如果包名不是以.或/开头,go会重全局文件中查找,如“fmt”,“aaa/bbb”如果以./开头,go会在相对目录中查找,如果只以/开头会重绝对路径中查找

 

go的可见性规则相当简单 ,如果以大写字母开头(函数,变量等 ),则其它包可见,小写则相当于该包私有吧

 

导入包时也可以起别名哦  如:import fm "fmt"  则后面可以用fm来当fmt了

 

声名在import后的变量是包的全局变量

 

 

这里又讲解了go的函数,类型和注释,也挺简单 觉得没有什么 好记的了,因为用的多了,看起来就理所当然了

不过有几点可以注意下:

1.go不允许隐式的类型转换,

2.Go 程序的执行(程序启动)顺序如下:

  1. 按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:
  2. 如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。
  3. 然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。
  4. 在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。

 

 

 

0 0
原创粉丝点击