Golang文字列タイプ-byte、rune、string

1588 ワード

文字列処理は、一般的には独立した章で説明することができます.Golangの文字列処理を見てみましょう.
一、string、byteの2つはよくあります.Golangのstringは,下層が[]byteである.ASCII文字の場合、Golangのデフォルトは1バイトです.漢字の場合、GolangはUTF-8文字セットで格納され、デフォルトでは3バイトです.
例を見ると、次の「勉強が好き」の3つの漢字はそれぞれ3バイトを占めています.

package main

import "fmt"

func main() {
	var str1 string = "123 "

	fmt.Println(len(str1))
}

// :
15

, , 。

string , 。 , []byte, 。 , , , , 。

、byte int8, 。

 


package main

import (
	"fmt"
	"reflect"
)

func main() {
	var str1 string = "123 "

	for i:=0; i

、Golang rune, UTF-8 。
range :


package main

import (
	"fmt"
	"reflect"
)

func main() {
	var str1 string = "123 "

	for _, v := range str1 {
		fmt.Println(v)
		fmt.Println(reflect.TypeOf(v))
	}
}

// :
49
int32
50
int32
51
int32
25105
int32
29233
int32
23398
int32
20064
int32

int32 , 。


package main

import (
	"fmt"
)

func main() {
	var str1 string = "123 "

	rr := []rune(str1)
	for i:=0; i

rune int32, 。

、 :

  • byte int8, ascii
  • rune int32, unicode utf-8
  • string , byte[], 。 , []byte。