Go基础之基础类型

数据类型

自己写的可以没有大佬讲的详细,不做相关说明,所以推荐查看李文周博客示例学习[基础数据类型][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博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论