自己写的可以没有大佬讲的详细,不做相关说明,所以推荐查看李文周博客示例学习[基础数据类型][1] [1]: https://www.liwenzhou.com/posts/Go/datatype/#c-1-0-0 "基础数据类型"
package main
import (
"fmt"
"math"
"strings"
)
func main() {
//十进制
var a int = 10
fmt.Printf("整型 %d\n", a)
fmt.Printf("二进制 %b\n", a)
//八进制
var b int = 0777
fmt.Printf("八进制 %o\n", b)
//16进制
var c int = 0xff
fmt.Printf("16进制小写 %x 16进制大写 %X\n", c, c)
//浮点型
fmt.Printf("float32 %f\n", math.MaxFloat32)
fmt.Printf("float64 %f\n", math.MaxFloat64)
fmt.Printf("浮点型 %f\n", math.Pi)
fmt.Printf("浮点型 %.2f\n", math.Pi) //保留两位
//复数 复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。
var c1 complex64
c1 = 1 + 2i
var c2 complex128
c2 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)
//布尔 布尔型数据只有true(真)和false(假)两个值。
var is bool
var iss bool = true
fmt.Printf("布尔默认值 %v 设置值 %v\n", is, iss)
//字符串
s1 := "hello"
s2 := "你好"
fmt.Printf("字符串 %v 中文字符串 %v\n", s1, s2)
//字符串转义\r \n \t \' \" \\
fmt.Println("str: \"D:\\go\\src\"")
//字符串常用函数操作
s3 := "aa"
s4 := "bb"
fmt.Println(len(s3)) //长度
fmt.Println(s3 + s4) //拼接字符串
fmt.Println(fmt.Sprintf("%s + %s\n", s3, s4)) //拼接字符串
s5 := "a b c d e f a"
fmt.Println(strings.Split(s5, " ")) //分割字符串
s6 := "c"
fmt.Println(strings.Contains(s5, s6)) //是否包含字符串
s7 := "a"
s8 := "f"
fmt.Println(strings.HasPrefix(s5, s7)) //前缀
fmt.Println(strings.HasSuffix(s5, s8)) //后缀
fmt.Println(strings.Index(s5, s7)) //子串出现的位置
fmt.Println(strings.LastIndex(s5, s7)) //最后一个子串出现的位置
//byte类型
s9 := 'x'
//rune类型
s10 := '中'
fmt.Println(s9, s10)
//遍历字符串
test()
//修改
test1()
}
// 遍历字符串 先将字符串转换成[]byte或者[]rune,然后再用string转成字符串
func test() {
str := "luffy你好啊"
for i := 0; i < len(str); i++ { //byte
fmt.Printf("%v(%c)", str[i], str[i])
}
fmt.Println()
for _, value := range str { //range
fmt.Printf("%v(%c)", value, value)
}
}
// 修改字符串
func test1() {
//byte 转换
s1 := "hello"
byteS1 := []byte(s1)
byteS1[0] = 'a'
fmt.Println(string(byteS1))
//rune
s2 := "小张"
runeS2 := []rune(s2)
runeS2[1] = '刘'
fmt.Println(string(runeS2))
}
本文为北溟有鱼QAQ原创文章,转载无需和我联系,但请注明来自北溟有鱼QAQ https://www.amdzz.cn
最新评论