Go基础知识---执行流程及变量 | 青训营

54 阅读3分钟

Go基础知识---执行流程及变量

一、go的开发注意事项及执行流程

1.1 go开发注意事项

  1. go区分大小写
  2. go的语句后面,不需要带分号。所以不能把多条语句放在一行
  3. go定义的变量或者import包,必须使用,不然报错

1.2 go的执行流程

a8aab4399814472fb8c40cdd75108f76~tplv-k3u1fbpfcp-watermark.image

一种是用go build 打包成可执行文件后,运行可执行的文件,这样就可以将可执行文件拷贝到没有go开发环境的机器上,仍可以运行。

一种是直接go run 运行文件,这样要求其他机器也有go的环境。

二、go 变量

2.1变量声明方式

  1. 指定变量类型(不赋值,则使用默认值)

    var i int
    
  2. 根据值自行判定

    var num = 10.11
    
  3. 省略var,:=左侧的变量不应该是已经声明过的,不然编译报错

    name := "tom"
    
  4. 多变量声明 一次性定义多个变量

    n1, name, n3 = 100, "to", 888
    
  5. 变量赋值时,不能改变数据类型

5339167d9f7541eaa47b1cb1ee49c37f~tplv-k3u1fbpfcp-watermark.image

2.2 数据类型

查看变量的类型:fmt.Printf("%T", x) 查看变量的占用字节数:fmt.Printf("%d",unsafe.Sizeof(x))

2.2.1 基本数据类型

  • 整数

    int(64位系统64bit),int8,int16,int32,int64 uint,uint8,uint16,uint32,uint64,byte(无符号,等价uint8)

    默认值 0

  • 浮点类型

    float32(4字节),float64(8字节,默认声明)

    默认值 0

  • 字符类型

    使用byte来保存单个字母字符 传统的字符串由字符构成,而go的字符串由字节组成

    var c byte = 'h'  
    var x int = '哈'  
    fmt.Printf("%c %c", c, x)
    

    对于字符的码值大于255的,可以通过int类型来保存,如“哈”

    英文1字节、汉字3字节,字符使用utf-8编码

    go语言的编码统一成了utf-8。没有编程乱码的困扰

  • 布尔型

    1个字节,true false

    默认值 false

  • 字符串

    go的字符串是由单个字节连接起来的。使用utf-8编码

    字符串一旦赋值,不能再修改。字符串不可变。

    默认值 “”

    字符串形式:

    1. 双引号
    2. 反引号:string 以字符串原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出原字符串效果

    字符串拼接通过+号,需要用到多行字符串,+保留在上一行

2.2.2 基本数据类型之间的转换

go在不同类型的变量之间赋值时需要显示转换。不能自动转换!!

  • 基本语法 T(v)表示将变量v转换为类型T
  • 注意!被转换的是变量存储的数据(值),变量本身的数据类型并没有变化。如下图i的数据类型没有变,并且改变其类型时,报错。

82c8cabea41d41e3a7e38e57479d7e17~tplv-k3u1fbpfcp-watermark.image

  • 转换中,大范围转化为小范围的时候,可能会有溢出。

91a5810c845b40f4a30572cd093a127c~tplv-k3u1fbpfcp-watermark.image

2.2.3 基本数据类型和string之间的转换

  1. 基本数据类型转string
  • fmt.Sprintf("%参数",表达式)

    Sprintf根据format参数生成格式化的字符串

2302157036024ba0bea562326008a525~tplv-k3u1fbpfcp-watermark.image

  • strconv包的函数

2fe896691ab34228888517d03d13161a~tplv-k3u1fbpfcp-watermark.image

  1. string转基本数据类型
  • strconv包的函数

daf1a17616cf405ba46012076cd4e2cc~tplv-k3u1fbpfcp-watermark.image

String不能转换为有效数据的时候,会转化成默认值,如“哈”不能转化为整数,会转化为0