第一部分:基本数据类型和操作符

一、文件名&关键字&标识符

  1. 所有go源码一.go结尾
  2. 标识符以字母或下划线开头,大小写敏感,比如:
a. boy          b. Boy          c. a+b          d. 0boy
e. _boy        f. =_boy         g. __
  1. _是特殊标识符,用来忽略结果
  2. 保留关键字


    image.png

二、Go程序的基本结构

package main                                            1、任何一个代码文件隶属于一个包
import "fmt"                                            2、import关键字,引用其他包:
func main() {                                              import("fmt")
    fmt.Println("Hello World!")                            import("os")
}                                                          一般写成:
                                                            import (
                                                                "fmt"
                                                                "os"
                                                            )        
                                                        3、golang可执行程序,package main,并且有且只有一个main入口函数
                                                        4、包中函数调用:
                                                              a. 同一个包中函数,直接调用
                                                              b. 不同包中函数,通过包名+点+函数名进行调用
                                                        5、包访问控制规则:
                                                              a. 大写以为着这个函数/变量是可导出的
                                                              b. 小写意味着这个波函数/变量是私有的,包外部不能访问                                                  

三、常量

  1. 常量使用const修饰,代表永远是只读的,不能修改。
  2. const只能修饰boolean, number(int相关类型、浮点类型、complex)和string。
  3. 语法 const identifier [type] = value,其中typr可以省略。
    例如:
    const b string = "hello world"
    const b = "hello world"
    const Pi = 3.1414926
    const a = 93
    const c = getValue()
  1. 比较优雅的写法:
const (
    a = 0
    b = 1
    c = 2
)
  1. 更加专业的写法:
const (
  a = iota
  b        //1
  c        //2
)

四、值类型和引用类型

  1. 值类型:变量直接存储值,内存通常在栈中分配。基本数据类型int、float、bool、string以及数组和struct

  2. 引用类型:变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配。通过GC回收。指针、slice、map、chan等都是引用类型

五、变量的作用域

  1. 在函数内部声明的变量叫做局部变量,声明周期仅限于函数内部。
  2. 在函数外部声明的变量叫做全局变量,声明周期作用于整个包,如果是大写的,则作用于整个程序。

六、数据类型和操作符

布尔型,只能存true和false
  var a bool = true
  相关操作符,!、&&、||

整型

1、uint8
    无符号8位整型(0-255)
2、uint16
    (0 - 65535)
3、uint32
    (0 - 4294967295)42亿多
4、uint164
    (0 - 18446744073709551615)
5、int8
    有符号8位整型(-128 - 127)
6、int16
    (-32768 - 32767)
7、int32
    (-2147483648 - 2147483647)21亿多
8、int64
    (-9223372036854775808 - 9223372036854775807)

浮点型

1、float32
    IEEE-754 32位浮点型数
2、fload64
    IEEE-754 64位浮点型数
3、complex64                 复杂的
    32 位实数和虚数
4、complex128
    64 位实数和虚数

其他类型

1、byte
    类似uint8
2、rune
    类似int32
3、uint
    32或64位
4、int
    与uint一样大小
5、uintptr
    无符号整型,用于存放一个指针

字符串类型

派生类型

1、指针类型(Pointer)
2、数组类型
3、结构化类型(struct)
4、Channel类型
5、函数类型
6、切片类型
7、接口类型
8、Map类型

类型转换

package main
func main() {
    var a int
    var b int32
    a = 15
    b = a + a    //error
    b = b +5     //ok; 5 is a constant
}

你可能感兴趣的:(第一部分:基本数据类型和操作符)