Go入门之基本数据类型
- 软件开发
- 2025-09-04 15:54:02

var a int8 = 10 fmt.Println(unsafe.Sizeof(a)) var c1 int32 = 10 var c2 int64 = 20 fmt.Println(int64(c1) + c2) c3 := 100 fmt.Printf("%b\n", c3) fmt.Printf("%o\n", c3) fmt.Printf("%x\n", c3)
unsafe.Sizeof()函数可以输出变量占内存大小,在进行运算时需要将类型统一,%b,%d,%o,%x为二进制,十进制,八进制,十六进制输出。
int8-int64为有符号整型,uint8-uint64为无符号整型
var c4 float32 = 3.1415926 fmt.Printf("%v %f %.2f\n", c4, c4, c4) var c5 float32 = 3.2e-2 fmt.Printf("%v\n", c5)浮点数有32和64两种,.%xf表示保留几位小数格式化输出,可以用科学计数法定义变量
bool类型为true和false
var str = "c:\\66\"6" fmt.Printf("%v\n", str) var str1 string = `abc def dsad ` //反引号 fmt.Printf("%v\n", str1) fmt.Println(len(str1))\为转义字符,可以利用``来定义多行字符串
len()求字符串的长度,注意中文每个占3个字节
不能用sizeof()算空间
拼接字符串: 第一种用+
第二种用fmt.Sprintf:
var str3 = fmt.Sprintf("%v%v", str, str1) //+也行 fmt.Println(str3)strings包的一些有用方法:
var str4 = "1-2-3" //切片 arr := strings.Split(str4, "-") fmt.Println(arr) var str5 = strings.Join(arr, "*") fmt.Println(str5) var flag = strings.Contains(str4, "-") fmt.Println(flag) flag = strings.HasPrefix(str4, "-") fmt.Println(flag) flag = strings.HasSuffix(str4, "-") fmt.Println(flag) num := strings.Index(str4, "-") //查找不到返回-1 fmt.Println(num) num = strings.LastIndex(str4, "-") fmt.Println(num)Split把字符串转换成切片,Join把切片连接成字符串,Contains表示是否包含另一个字符串,Has两个函数表示前缀后缀有没有相应字符串,Index和LastIndex返回最初和最后匹配到的子串的位置
字符类型,只有byte和rune类型
var e = 'a' fmt.Printf("%v %T\n", e, e) //字母ASCII码 汉字utf-8用unicode编码的十进制 fmt.Printf("%c %T\n", e, e) str6 := "你好go" for i := 0; i < len(str5); i++ { fmt.Printf("%v(%c)", str6[i], str6[i]) } fmt.Println() for _, v := range str6 { //用中文需要用这种循环 fmt.Printf("%v(%c)", v, v) } str7 := "pig" bytestr := []byte(str7) bytestr[0] = 'b' fmt.Println(string(bytestr)) str8 := "大pig" runestr := []rune(str8) runestr[0] = '小' fmt.Println(string(runestr))%v代表输出ASCII码或unicode编码,%c表示输出原字符。如果字符串里有除字母以外的字符需要遍历时,需要用range循环。
修改字符串需要将字符串转换成字符数组,再转换回去
其他类型转换成string类型
第一种方法通过fmt.Sprintf
var i1 int = 20 var i2 float64 = 12.456 var i3 bool = true var i4 byte = 'a' str9 := fmt.Sprintf("%d", i1) fmt.Printf("%v %T\n", str9, str9) str9 = fmt.Sprintf("%f", i2) fmt.Printf("%v %T\n", str9, str9) str9 = fmt.Sprintf("%t", i3) fmt.Printf("%v %T\n", str9, str9) str9 = fmt.Sprintf("%c", i4) fmt.Printf("%v %T\n", str9, str9)第二种方法strconv.Format
str9 = strconv.FormatInt(int64(i1), 10) fmt.Printf("%v %T\n", str9, str9) str9 = strconv.FormatFloat(float64(i2), 'f', 4, 64) fmt.Printf("%v %T\n", str9, str9) str9 = strconv.FormatUint(uint64(i4), 10) fmt.Printf("%v %T\n", str9, str9)string转换成其他类型
str10 := "1234" qq, _ := strconv.ParseInt(str10, 10, 64) fmt.Println(qq) str11 := "1234.234" qqq, _ := strconv.ParseFloat(str11, 64) fmt.Println(qqq)Go入门之基本数据类型由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Go入门之基本数据类型”