编程语言
首页 > 编程语言> > 21天从Java转向Go之第四天——水滴石穿(基本数据)

21天从Java转向Go之第四天——水滴石穿(基本数据)

作者:互联网

Go语言中的数据类型

基础类型

数字

整数

浮点数

复数

	c := complex(1, 2)
	r := real(c)
	i := imag(c)
	fmt.Printf("实部:%f虚部:%f\n",r,i)

字符串

s := "你好,hello 世界 プログラム"
	fmt.Println("字节数:",len(s))//37
	fmt.Println("前三个字符:",s[0],s[1],s[2],s[3])// 228 189 160 229
		fmt.Println(s[len(s)]) //panic: runtime error: index out of range [37] with length 37

	s+="123"
	fmt.Println(s) //你好,hello 世界 プログラム123
s[0] = 'L' //编译错误:s[0]无法赋值
//s[7:]与s共用底层字节数组
package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	s := "你好,hello 世界 プログラム"
	fmt.Println("字节数:",len(s))//37
	fmt.Println("前三个字符:",s[0],s[1],s[2],s[3])// 228 189 160 229
	//fmt.Println(s[len(s)]) //panic: runtime error: index out of range [37] with length 37

	s+="123"
	fmt.Println(s)
//s=	``
//	fmt.Println(s)

	fmt.Println(utf8.RuneCountInString(s)) //返回 string s 中的 UTF-8 编码的码值的个数。

	for i, i2 := range s { //隐式
		fmt.Println("for range:",i,i2)
	}

	for i := 0; i < len(s); {
		inString, size := utf8.DecodeRuneInString(s[i:])  //解码 string s 中第一个 UTF-8 编码序列,返回该码值和长度。
		i+=size
		fmt.Println(inString,size)
		fmt.Println(string(inString))
	}

	runes := []rune(s)
	fmt.Println(runes)

	fmt.Println(string(runes))
}

布尔

聚合类型

数组

结构体

引用类型

指针

slice

map

函数

通道

标签:编码,Java,21,fmt,字符串,Println,UTF,水滴石穿,字节
来源: https://www.cnblogs.com/perkins/p/15608418.html