一、数据类型
package main
import (
"math"
"fmt"
)
func main() {
//十进制打印为
var n int = 10
fmt.Printf("%b\n", n) //二进制
fmt.Printf("%d\n", n) //十进制
//八进制打印为
m := 075
fmt.Printf("%d\n", m) //十进制
fmt.Printf("%o\n", m) //八进制
//十六进制打印为
f := 0xff
fmt.Println(f) //十进制
fmt.Printf("%x\n", f) //十六进制
//uint8
var age uint8 //0~255
//age = 256 则报错
fmt.Println(age)
//浮点数
fmt.Println(math.MaxFloat32)
fmt.Println(math.MaxFloat64)
//布尔值
var a bool
fmt.Println(a) //默认为False
a = true
fmt.Println(a)
//字符串
s1 := "hello beijing"
s2 := "你好 北京"
fmt.Println(s1)
fmt.Println(s2)
//打印windows平台下的一个路径 c:\code\go.exe
fmt.Println("c:\\code\\go.exe")
fmt.Printf("\t制表符\n换行符")
s3 := `
多行字符串
两个反引号之间的内容
会远样输出
\t
\n
`
fmt.Println(s3)
}
二、字符串
package main
import (
"fmt"
"strings"
)
//字符串常见操作
func main() {
//求字符串的长度
s1 := "hello"
fmt.Println(len(s1))
s2 := "hello沙河"
fmt.Println(len(s2))
//拼接字符串
fmt.Println(s1 + s2)
s3 := fmt.Sprintf("%s - %s", s1, s2)
fmt.Println(s3)
//字符串的分割
s4 := "how do you do"
fmt.Println(strings.Split(s4, " "))
fmt.Printf("%T\n", strings.Split(s4, " ")) //输出分割后的数据类型 字符串切片
//判断是否包含
fmt.Println(strings.Contains(s4, "do"))
//判断前缀和后缀
fmt.Println(strings.HasPrefix(s4, "how"))
fmt.Println(strings.HasSuffix(s4, "how"))
//判断子串的位置
fmt.Println(strings.Index(s4, "do"))
//子串最后一次出现的位置
fmt.Println(strings.LastIndex(s4, "do"))
//join
s5 := []string{"how", "do", "you", "do"}
fmt.Println(s5)
fmt.Println(strings.Join(s5, "+"))
}
三、字符
package main
import "fmt"
func main() {
// byte uint8的别名 ASCII码
// rune int32的别名
var c1 byte = 'c'
var c2 rune = 'c'
fmt.Println(c1, c2)
fmt.Printf("c1:%T c2:%T\n", c1, c2)
s := "hello沙河"
//处理中英文混杂的文本用for range循环
for i:=0;i<len(s);i++{
fmt.Printf("%c", s[i])
}
fmt.Println()
for _,r := range s{
fmt.Printf("%c", r)
}
}