Go语言中数据类型

作者: ropon 分类: Go 发布时间: 2019-10-18 15:17
package main

import (
	"fmt"
	// "strings"
)

// import "math"

func main() {
	// int8 16 32 64 uint
	// a := 10
	// b := 0b1010  // 表示二进制1010
	// c := 037     // 表示八进制37
	// d := 0x55    // 表示十六进制55
	// e := 0x28p-3 // 表示十六进制22数除以2的3次方(p-3)
	// f := 123_56  // 表示12356 _ 分隔数字 为了方便阅读
	// fmt.Println(a, b, c, d, e, f)

	// a := 20
	// fmt.Printf("%d \n", a)
	// fmt.Printf("%b \n", a)
	// fmt.Printf("%o \n", a)
	// fmt.Printf("%x \n", a)

	// float32 64
	// fmt.Printf("%f \n", math.Pi)
	// fmt.Printf("%.2f \n", math.Pi)

	// complex64 虚部 实部都是32位
	// complex128 虚部 实部都是64位
	// c1 := 1 + 2i
	// var c1 complex64
	// c1 = 1 + 2i
	// c2 := 2 + 3i
	// var c2 complex128
	// c2 = 2 + 3i
	// fmt.Println(c1)
	// fmt.Println(c2)

	// 布尔值默认为false 不允许将整型强转布尔型 不能参与运算 也不能与其他类型进行转换
	// var yflag bool
	// fmt.Println(yflag)

	// 字符串 " " 默认使用UTF-8编码 Print Println Printf
	// s1 := "嗨"
	// s2 := "Hello World"
	// fmt.Printf(s1 + "\n")
	// fmt.Printf(s2)
	// fmt.Print("test")
	// fmt.Println(s1, s2)
	// a := 1
	// var b bool
	// c := true
	// if d := 2 > 1;d {
	// 	fmt.Println("test")
	// } else {
	// 	fmt.Println("ok")
	// }

	// 转移符 \r \n \t \' \" \\
	// fmt.Println("str := \"d:\\go\\src\"")

	// 多行字符串 ` ` 转义符无效 原样输出
	// s4 := `
	// 今天
	// 是个
	// 好天气
	// `
	// fmt.Println(s4)

	// 字符串常见操作
	// len(str) 求字符串长度
	// + 或者 fmt.Sprintf 字符串拼接

	// 需要导入strings 包
	// strings.Split 分割
	// strings.Contains  判断是否包含某字符串 返回布尔值
	// HasPrefix 判断是否以字符串开头
	// HasSuffix 判断是否以字符串结尾
	// Index 字符串出现的位置
	// LastIndex 字符串最后出现的位置
	// Join 连接数组或切片中元素

	// s5 := "Ropon"
	// fmt.Println(len(s5))
	// fmt.Println("I am " + s5)
	// fmt.Println(fmt.Sprintf("I am %s", s5))
	// fmt.Println(strings.Split(s5, "o"))
	// fmt.Println(strings.Contains(s5, "o"))
	// fmt.Println(strings.HasPrefix(s5, "Ro"))
	// fmt.Println(strings.HasSuffix(s5, "n"))
	// fmt.Println(strings.Index(s5, "o"))
	// fmt.Println(strings.LastIndex(s5, "o"))
	// s6 := "is Good!"
	// fmt.Println(strings.Join([]string{s5, s6}, " "))

	// byte rune实际是int32
	// 英文字母 1个字节 中文汉字 3个字节
	// s1 := "Hello"
	// c1 := 'H'
	// s2 := "我爱你中国"
	// c2 := '我'
	// fmt.Println(s1, c1, len(s1))
	// fmt.Println(s2, c2, len(s2))

	// 遍历字符串
	// s1 := "Hello哥哥"
	// for i := 0; i < len(s1); i ++ {
	// 	fmt.Printf("%c\n", s1[i])
	// }

	// for _, r := range s1 {
	// 	fmt.Printf("%c\n", r)
	// }

	// 修改字符串
	// s1 := "niubi"
	// 类型转换 T(表达式)  T表示需要转换的类型 表达式包括变量 复杂算子 函数返回值
	// %T 打印变量类型
	// byteA := []byte(s1)
	// byteA[0] = 'x'
	// fmt.Println(string(byteA))

	// s2 := "我爱你"
	// runeA := []rune(s2)
	// runeA[0] = '你'
	// fmt.Println(string(runeA))

	// a := 1
	// b := 1.25
	// s1 := "我们不一样"
	// var f bool
	// fmt.Printf("%T\n",a)
	// fmt.Printf("%T\n",b)
	// fmt.Printf("%T\n",s1)
	// fmt.Printf("%T\n",f)

	// 统计字符串 "Hello我们不一样,每个人都不一样Nb。" 中汉字的数量
	s1 := "Hello我们不一样,每个人都不一样Nb。"
	byteA := []byte(s1)
	runeA := []rune(s1)
	fmt.Println(byteA)
	fmt.Println(runeA)
	

}

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!