变量声明
//全局变量
var nameTest1 string
var nameTest2 int
var nameTest3 bool
//批量声明,常用
var (
name2 string
age int
ok bool
)
func test(){
//局部变量,局部变量声明必须使用!
var nameTest4="hello"//类型推导
nameTest5 := "world"//简短声明,常用
}
数组定义
数组的长度是数组类型的一部分,确定即不可更改
var array1 [3]bool
array2 := [...]bool{0,1,2,3}//根据初始化自动推断数组长度
array3 := [5]bool{0:1,4:3}//根据索引初始化
多维数组
var array1 [3][4]bool
array1 = [3][4]bool{
[4]bool{true, false, true},
[4]bool{true, false, true},
[4]bool{true, false, true},
}
iota常量计数器
iota
在const关键字出现时将被重置为0
。const中每新增一行常声明,将使iota计数一次(iota可理解为const语句块中的行索引),使用iota能简化定义,在定义枚举时很有用。
package main
import "fmt"
const (
_ = iota
kb = 1 << (10 * iota)
mb = 1 << (10 * iota)
gb = 1 << (10 * iota)
tb = 1 << (10 * iota)
pb = 1 << (10 * iota)
)
func main() {
fmt.Printf("hello Jc!\n")
fmt.Printf("kb is %v\n", kb)
fmt.Printf("mb is %d\n", mb)
fmt.Printf("gb is %d\n", gb)
fmt.Printf("tb is %d\n", tb)
fmt.Printf("pb is %d\n", pb)
}
打印格式
字符串
``
用于多行文字保持格式输出,可以用于路径原样输出
string1 := `
多行文字
测试
`
string2 := `D:\Example Code\Go Demo\src\gitee.com\jcgogo`
fmt.Println(string1)
fmt.Println(len(string2))//打印字符串长度
字符串拼接
将两段字符串拼接
string3 := fmt.Sprintf("%s,%s", string1, string2)
字符串分割
将字符串按\
分割为列表
result := strings.Split(string3, "\\")
fmt.Println(result)
字符串包含内容判断
判断字符串中是否包含测试
result2 := strings.Contains(string3, "测试")
fmt.Println(result2)
前后缀判断
判断字符串前缀是否为D
,后缀是否为o
fmt.Println(strings.HasPrefix(string2, "D"))
fmt.Println(strings.HasSuffix(string2, "o"))
字符串子串位置
字符c
的第一个位置和最后一个位置
fmt.Println(strings.Index(string2,"c"))
fmt.Println(strings.LastIndex(string2,"c"))
字符串拼接
将分割好字符串的列表的以~~
拼接
fmt.Println(strings.Join(result1, "~~"))
for遍历对象
for _, v := range string2 {
fmt.Printf("%c ", v)
}