Golangベースのデータ型
4773 ワード
前言
Go言語には豊富なデータ型があり、基本的な整数型、浮動小数点型、ブール型、文字列のほか、配列、スライス、構造体、関数、map、チャネルなどがある.Go言語の基本的なタイプは他の言語と大きく異なる.
ベースデータ型
せいけい
整数型は、int 8、int 16、int 32、int 64に対応する符号なし整数型:uint 8、uint 16、uint 32、uint 64の2つの大きなクラスに分けられます.
その中で、uint 8は私たちがよく知っているbyte型、int 16はC言語のshort型、int 64はC言語のlong型に対応しています.
を選択します.
説明
uint8
符号なし8ビット整数(0~255)
uint16
符号なし16ビット整数(0~65535)
uint32
符号なし32ビット整数(0~4294967295)
uint64
符号なし64ビット整数(0~18446744073709551615)
int8
符号付き8ビット整数(-128~127)
int16
符号付き16ビット整数(-32768~32767)
int32
符号付き32ビット整数(-21147483648から2147483647)
int64
符号付き64ビット整数(-922337203685475808~922337203685475807)
fmt関数を用いて整数を異なる進数で示すことができる.
プレースホルダフラグ
とくしゅせいけい
を選択します.
説明
uint
32ビットオペレーティングシステムではuint 32、64ビットオペレーティングシステムではuint 64
int
32ビットオペレーティングシステムではint 32、64ビットオペレーティングシステムではint 64
uintptr
ポインタを格納するためのシンボルなし整数
浮動小数点
を選択します.
説明
float32
32ビット浮動小数点型
float64
64ビット浮動小数点型
complex64
32ビット実数と虚数
complex128
64ビット実数と虚数
データ型変換
文字列
Go言語の文字列は、他の元のデータ型(int、bool、float 32など)を使用するように、元のデータ型で現れる.Go言語の文字列の内部実装は
文字列の一般的な操作
文字列を変更文字列を変更するには、
Go言語には豊富なデータ型があり、基本的な整数型、浮動小数点型、ブール型、文字列のほか、配列、スライス、構造体、関数、map、チャネルなどがある.Go言語の基本的なタイプは他の言語と大きく異なる.
ベースデータ型
せいけい
整数型は、int 8、int 16、int 32、int 64に対応する符号なし整数型:uint 8、uint 16、uint 32、uint 64の2つの大きなクラスに分けられます.
その中で、uint 8は私たちがよく知っているbyte型、int 16はC言語のshort型、int 64はC言語のlong型に対応しています.
を選択します.
説明
uint8
符号なし8ビット整数(0~255)
uint16
符号なし16ビット整数(0~65535)
uint32
符号なし32ビット整数(0~4294967295)
uint64
符号なし64ビット整数(0~18446744073709551615)
int8
符号付き8ビット整数(-128~127)
int16
符号付き16ビット整数(-32768~32767)
int32
符号付き32ビット整数(-21147483648から2147483647)
int64
符号付き64ビット整数(-922337203685475808~922337203685475807)
fmt関数を用いて整数を異なる進数で示すことができる.
package main
import "fmt"
func main(){
//
var a int = 10
fmt.Printf("%d
", a) // 10
fmt.Printf("%b
", a) // 1010 %b
// 0
var b int = 066
fmt.Printf("%o
", b) // 66
// 0x
var c int = 0xff
fmt.Printf("%x
", c) // ff
fmt.Printf("%X
", c) // FF
}
プレースホルダフラグ
%T //
%v //
%b //
%d //
%o //
%x //
%s //
とくしゅせいけい
を選択します.
説明
uint
32ビットオペレーティングシステムではuint 32、64ビットオペレーティングシステムではuint 64
int
32ビットオペレーティングシステムではint 32、64ビットオペレーティングシステムではint 64
uintptr
ポインタを格納するためのシンボルなし整数
浮動小数点
を選択します.
説明
float32
32ビット浮動小数点型
float64
64ビット浮動小数点型
complex64
32ビット実数と虚数
complex128
64ビット実数と虚数
データ型変換
func test(){
var a int8 = 100
var b int16 = int16(a) // int8 int16
fmt.Printf("a=%d b=%d
",a,b)
}
文字列
Go言語の文字列は、他の元のデータ型(int、bool、float 32など)を使用するように、元のデータ型で現れる.Go言語の文字列の内部実装は
UTF-8
で符号化され、二重引用符""
で包まれている.//
s := "Hello "
// 、 、
c1 := 'h'
c2 := '1'
c3 := ' '
// :1 =8Bit(8 )
// 1 'A'=1
// 1 utf8 ' '= 3
の文字列//
a1 :=`
`
文字列の一般的な操作
// len() ->
s1 := " "
fmt.Println(len(s1))
// + or or Springtf ->
name := " "
world := " "
fmt.Println(name + world)
fmt.Printf("%s%s",name,world)
ss1 := fmt.Sprintf("%s%s",name,world) // ,
fmt.Println(ss1)
// strings.Split ->
s2 := "D:/a/b/c"
ret := strings.Split(s2,"/")
fmt.Println(ret) // [D: a b c]
// strings.Contains ->
s3 := "HelloWorld"
ret := strings.Contains(s3,"W")
fmt.Println(ret) // true
// strings.HasPrefix and strings.HasSuffix -> /
s3 := "HelloWorld"
fmt.Println(strings.HasPrefix(s3,"H")) // true
fmt.Println(strings.HasSuffix(s3,"x")) // false
// strings.Index and strings.LastIndex ->
s4 := "abcdefge"
fmt.Println(strings.Index(s4,"c")) // 2
fmt.Println(strings.LastIndex(s4,"e")) // 4
// strings.Join ->join
s2 := "D:/a/b/c"
ret := strings.Split(s2,"/")
fmt.Println(strings.Join(ret,"+")) // D:+a+b+c
// strings.Replace ->
s1 := "hellooowa"
s1 = strings.Replace(s1,"he","wo",2)
fmt.Println(s1) // wollooowa
// strings.ToLower or strings.ToUpper -> /
s1 := "jack"
s1 = strings.ToLower(s1)
fmt.Println(s1) // jack
s2 := "JACK"
s2 = strings.ToUpper(s2)
fmt.Println(s2) // JACK
// strings.TrimSpace ->
s1 := " sk sk "
s1 = strings.TrimSpace("sksk")
fmt.Println(s1) // sksk
// strings.Trim ->
s1 := "hello world"
s1 = strings.Trim(s1,"hd")
fmt.Println(s1) // ello worl
// strings.TrimLeft ->
s1 := "hello world"
s1 = strings.TrimLeft(s1,"he")
fmt.Println(s1) // llo world
// strings.TrimRight ->
s1 := "hello world"
s1 = strings.TrimRight(s1,"ld")
fmt.Println(s1) // hello wor
// strconv.Itoa ->
str1 := strconv.Itoa(1000)
fmt.Printf("%T",str1) // string
// strconv.Atoi ->
str1 := "1000"
number,err := strconv.Atoi(str1)
if err != nil{
fmt.Println("can not conver to int",err)
}else{
fmt.Println(number) // 1000
}
文字列を変更文字列を変更するには、
[]run
または[]byte
に変換してからstring
に変換する必要があります.どの変換でもメモリが再割り当てされます.s2 := " " // [ ]
s3 := []rune(s2) // rune
s3[0] = ' '
fmt.Println(string(s3)) // rune