GO_P7—— https://www.bilibili.com/video/BV17Q4y1P7n9?p=13

GO教程

https://www.liwenzhou.com/posts/Go/go_menu/

https://www.bilibili.com/video/BV17Q4y1P7n9?p=13

1   go环境搭建

 

https://www.liwenzhou.com/posts/Go/install_go_dev/

1 IDE搭建

3 环境安装

 

 

 

 

2 配置环境变量

设置变量名GOROOT,变量值C:\Go\(安装目录)

系统变量Path,添加C:\Go\bin\

.go的环境变量设置

windows下面要设置root和path

root代表go安装路径,也就是go执行的目录 GOROOT

path 代表新项目要放置的目录环境  GOPATH

通过windows环境变量进行相应设置就可以

3.主要说下GOPATH,主要是新建项目放置的目录情况

新的go项目放置文件,先在E盘新建goprocet文件,之后procet文件里面必须要有bin、pkg、src 三个文件夹,下图的文件格式,那么你的GOPATH的环境变量就应该是  E:\goproict

go run 想执行脚本文件一样执行Go代码  

go install

1 先便宜得到一个课执行文件

2 将可长记性文件拷贝到  GOPATH/BIN

 

 go env  查看go的相关变量

安装vscode--->安装中文插件

 

跨平台编译

 

SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux  // 目标平台是linux
SET GOARCH=amd64  // 目标处理器架构是amd64

GO关键字

关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。

Go语言中有25个关键字:

    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
37个保留字

Go语言中还有37个保留字。

    Constants:    true  false  iota  nil

        Types:    int  int8  int16  int32  int64  
                  uint  uint8  uint16  uint32  uint64  uintptr
                  float32  float64  complex128  complex64
                  bool  byte  rune  string  error

    Functions:   make  len  cap  new  append  copy  close  delete
                 complex  real  imag
                 panic  recover
变量类型
Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。

变量声明
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用

Go语言的变量声明格式为:

var 变量名 变量类型  和python  不同

批量声明

每声明一个变量就需要写var关键字会比较繁琐,go语言中还支持批量变量声明:

var (
    a string
    b int
    c bool
    d float32
)

变量的初始化

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

当然我们也可在声明变量的时候为其指定初始值。变量初始化的标准格式如下:

var 变量名 类型 = 表达式

或者一次初始化多个变量

var name, age = "Q1mi", 20

 

类型推导

有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。

var name = "Q1mi"
var age = 18


短变量声明

在函数内部,可以使用更简略的 := 方式声明并初始化变量。  推荐

匿名变量

在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)接收某个函数的返回值。 匿名变量用一个下划线  表示,例如:

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明

注意事项:

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. :=不能使用在函数外。
  3. _多用于占位,表示忽略值。
 

常量

相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值且 在整个程序运行期间它们的值都不能再发生变化了

多个常量也可以一起声明:

const (
    pi = 3.1415
    e = 2.7182
)

const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如:

const (
    n1 = 100
    n2
    n3
)

上面示例中,常量n1n2n3的值都是100

 

iota

iota是go语言的常量计数器,只能在常量的表达式中使用。

iota在const关键字出现时将被重置为0;const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用

 

iota声明中间插队;插队不影响 iota,iota该 +1  还是加一

const (
		n1 = iota //0
		n2 = 100  //100
		n3 = iota //2
		n4        //3
	)
	const n5 = iota //0

定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

const (
		_  = iota
		KB = 1 << (10 * iota)   1024KB
		MB = 1 << (10 * iota)  
		GB = 1 << (10 * iota)
		TB = 1 << (10 * iota)
		PB = 1 << (10 * iota)
	)

多个iota定义在一行;不影响  iota

const (
		a, b = iota + 1, iota + 2 //1,2
		c, d                      //2,3
		e, f                      //3,4
	)
 数据基本类型
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。

整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64

其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long

类型描述
uint8 无符号 8位整型 (0 到 255)
uint16 无符号 16位整型 (0 到 65535)
uint32 无符号 32位整型 (0 到 4294967295)
uint64 无符号 64位整型 (0 到 18446744073709551615)
int8 有符号 8位整型 (-128 到 127)
int16 有符号 16位整型 (-32768 到 32767)
int32 有符号 32位整型 (-2147483648 到 2147483647)
int64 有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
 

特殊整型

类型描述
uint 32位操作系统上就是uint32,64位操作系统上就是uint64
int 32位操作系统上就是int32,64位操作系统上就是int64
uintptr 无符号整型,用于存放一个指针

注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑intuint可能在不同平台上的差异。

注意事项 获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用int来表示。在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和 uint

进制转换
func main(){
    i1 :=101
    fmt.Printf("%d\n",i1)
    fmt.Printf("%b\n",i1)   //十进制转换为二进制
    fmt.Printf("%o\n",i1)  //十进制转换为 八进制
    fmt.Printf("%x\n",i1)   //十进制转换为十六进制
    //八进制
    i2 := 077
    fmt.Printf("%d\n",i2)
    //十六进制
    i3 := 0x1234567
    fmt.Printf("%d\n",i3)
    //查看变量类型
    fmt.Printf("%T\n",i3)
    //声明 int8类型的变量
    i4 := int8(9)
    fmt.Printf("%T\n",i4)

}
 
 浮点数
Go语言支持两种浮点型数:float32float64

Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)false(假)两个值。

注意:

  1. 布尔类型变量的默认值为false
  2. Go 语言中不允许将整型强制转换为布尔型.
  3. 布尔型无法参与数值运算,也无法与其他类型进行转换。
 
posted @ 2020-06-06 21:58  walkerpython  阅读(1590)  评论(0编辑  收藏  举报