golang_listen2
:= 只能在第一次声明时用到
1.标识符、关键字
2. 变量和常量
3. 数据类型
4. Go程序基本结构
标识符,关键字
1. 标识符是?来表示Go中的变量名或者函数名,以字?或_开头。后?跟着字? 、_或数字
2 关键字 关键字是Go语?预先定义好的,有特殊含义的标识符
变量
var a int
var b string
var c bool
var d int = 8
var e string = “hello”
var ( a int //0 //默认值
b string //“”
c bool //false
d int = 8 // 8
e string = “hello” //hello )
常量
1. 常量使?const 修饰,代表永远是只读的,不能修改。
2. 语法:const identifier [type] = value,其中type可以省略
const b string = “hello world”
const b = “hello world”
优雅的语法
const(
a = 1
b = 2
c = 3 )
更加专业的写法
const (
a = iota
b
c )
const(
a = 1 << iota
b
c )
package main import "fmt" func main() { const ( a int = 100 b c int = 200 d ) fmt.Printf("a=%d b=%d c=%d d=%d\n", a, b, c, d) // const ( // e = iota // f = iota // g = iota // ) const ( //同上原理 e = iota //默认是0 f = iota g = iota ) const ( a1 = 1 << iota //数字左移 a2 = 1 << iota a3 = 1 << iota a4 = 1 << iota a5 = 1 << iota ) fmt.Printf("e=%d f=%d g=%d \n", e, f, g) fmt.Printf("a1=%d a2=%d a3=%d a4=%d a5=%d\n", a1, a2, a3, a4, a5) }
数据类型
1. 布尔类型
2. 整数和浮点数类型
3. 字符串类型
数据类型和操作符
1. 布尔类型
a. var b bool 和 var b bool = true 和 var b = false
b. 操作符 == 和 !=
c. 取反操作符: !b
d. && 和 || 操作符 e. 格式化输出占位符: %t
2. 整数和浮点数类型
a. int8、int16、int32、int64
b. uint8、uint16、uint32、uint64
c. int 和 uint,和操作系统平台相关 数据类型和操作符
d. float32 和 float64浮点类型 e. 所有整数 初始化为0,所有浮点数初始化为0.0,布尔类型初始化为false
3. 整数和浮点数类型
a. Go是强类型语?,不同类型相加以及赋值是不允许的 数据类型和操作符
b. 那怎么样才能实现,不同类型相加呢?
c. 输出占位符:整数%d,%x?六进制,%f浮点数
4. 字符串类型
a. var str string
b. var str string = “hello world”
c. 字符串输出占位符%s d. 万能输出占位符: %v
字符串
a. 双引号, "",可以包含控制字符
b. 反引号, ``,所有字符都是原样输出
字符串常用操作
a. ?度:len(str)
b. 拼接:+,fmt.Sprintf
c. 分割:strings.Split
d. 包含: strings.Contains
e. 前缀或后缀判断:strings.HasPrefix, strings.HasSuffix
f. ?串出现的位置: strings.Index(), strings.LastIndex() g. join操作: strings.Join(a[]string, sep string)
-------------
a. 逻辑操作符, == 、 != 、<、<=、>=
b. 算数操作符, +、-、 * 、/、%
go的基本结构
1. 任何?个代码?件?属于?个包
2. import 关键字,引?其他包:
import(“fmt”) import(“os”)
通常习惯写成: import ( “fmt” “os”)
3. 开发可执?程序,package main, 并且有且只有?个main??函数
4. 包中函数调?:
a. 同?个包中函数,直接?函数名调?
b. 不同包中函数,通过包名+点+ 函数名进?调?
5. 包访问控制规则:
a. ?写意味着这个函数/变量是可导出的
b. ?写意味着这个函数/变量是私有的, 包外部不能访问