2. Go 言語には基本型が組み込まれています

ブール型

Go では、ブール値の型はboolで、値は true または false で、デフォルトは false です

// 示例代码
var isActive bool //  全局变量声明
var enabled, disabled = true, false //  忽略类型的声明
func test() {
    
    
    var available bool //  一般声明
    valid := false //  简短声明
    available = true //  赋值操作
}

数値型

整数には、符号なしと符号付きの 2 種類があります。Go は int と uint の両方をサポートしており、どちらの型も同じ長さを持ちますが、具体的な長さは異なるコンパイラの実装によって異なります。現在の gcc および gccgo コンパイラは、32 ビット プラットフォームと 64 ビット プラットフォームの両方で int と uint に 32 ビットを使用しますが、将来的には 64 ビット プラットフォームでは 64 ビットに増加する可能性があります。Go には、桁数を直接定義する型もあります: rune、int8、int16、int32、int64、および byte、uint8、uint16、uint32、uint64。このうち、 rune は int32 のエイリアス、 byte は uint8 のエイリアスです

注意すべき点の 1 つは、これらのタイプの変数は、値を割り当てたり相互に操作したりすることができないことです。そうしないと、コンパイラはコンパイル中にエラーを報告します。
次のコードはエラーを生成します。

var a int8
var b int32
c:=a + b

また、int の長さは 32 ビットですが、int と int32 は互換性がありません。

浮動小数点数には float32 と float64 (float 型はありません) の 2 種類があり、デフォルトは float64 です

Go は複数形もサポートしています。デフォルトのタイプは complex128 (64 ビット実数 + 64 ビット虚数) です。もっと小さいものが必要な場合は、
complex64 (32 ビット実数 + 32 ビット虚数) もあります。複素数の形式は RE + IMi です。RE は実数部、IM は虚数部、最後の i は虚数単位です。複数の数値を使用した例を次に示します。

var c complex64 = 5+5i
//output: (5+5i)
fmt.Printf("Value is: %v", c)

Go の文字列は UTF-8 文字セットを使用してエンコードされます。文字列は二重引用符 ("") またはバックティック () のペアで定義され
、その型は文字列です。

// 示例代码
var frenchHello string //  声明变量为字符串的一般方法
var emptyString string = "" //  声明了一个字符串变量,初始化为空字符串
func test() {
    
    
    no, yes, maybe := "no", "yes", "maybe" //  简短声明,同时声明多个变量
    japaneseHello := "Ohaiou" //  同上
    frenchHello = "Bonjour" //  常规赋值
}

Go では文字列は不変です。たとえば、次のコードはコンパイル時にエラーを報告します。

var s string = "hello"
s[0] = 'c'

しかし、本当に変更したい場合はどうすればよいでしょうか? 次のコードでこれを実現できます。

s := "hello"
c := []byte(s) //  将字符串 s  转换为 []byte  类型
c[0] = 'c'
s2 := string(c) //  再转换回 string  类型
fmt.Printf("%s\n", s2)

Go で + 演算子を使用して 2 つの文字列を連結できます。

s := "hello,"
m := " world"
a := s + m
fmt.Printf("%s\n", a)

文字列の変更は次のように記述することもできます。

s := "hello"
s = "c" + s[1:] //  字符串虽不能更改,但可进行切片操作
fmt.Printf("%s\n", s)

複数行の文字列を宣言したい場合はどうすればよいでしょうか? これはバッククォートを使用して宣言できます。

m := `hello
	world`

バッククォートで囲まれた文字列はRaw string、つまりコード内の文字列の形式が印刷時の形式であり、文字エスケープがなく、改行がそのまま出力されます。

エラーの種類

Go にはエラー メッセージを処理するために特別に使用される組み込みのエラー タイプがあり、Go のパッケージにはエラーを処理するパッケージ エラーもあります。

err := errors.New("emit macho dwarf: elf header corrupted")
if err != nil {
    
    
	fmt.Print(err)
}

おすすめ

転載: blog.csdn.net/u012534326/article/details/119986165