基本的なデータ型
Go の基本型には bool、string、int、浮動小数点型、byte、rune、uint、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float32、float64 などがあります。
次のように分類できます。

1. 数値、浮動小数点数、文字
1.1. 真偽値
true と false
1.2. 数値型
1.2.1. 整数
幅の異なる型により、記憶領域の要件に対応できます。
int8
int16
int32
int64
uint8
uint16
uint32
uint64
int
uint
int と uint の幅は対象アーキテクチャに依存します。通常、32 ビット環境では 32 ビット、64 ビット環境では 64 ビットです。
ほかの整数型を示します。

1.2.2. 浮動小数点数
float32
float64
それぞれ 32 ビットと 64 ビットの浮動小数点数を表します。
1.2.3. 複素数
Go は複素数の型として complex64 と complex128 を提供します。
標準ライブラリには、複素数の計算用パッケージもあります。
import "math/cmplx"
1.2.4. byte
Go には char 型がありません。byte は uint8 の別名で、8 ビットの 1 バイトを表します。バイナリやバイト単位の文字列処理に使います。
var b byte = 'A'
1.2.5. rune
rune は int32 の別名で、Unicode のコードポイントを表します。Unicode テキストの処理に使います。
var r rune = '中'
1.3. 文字と文字列
1 バイトで表せる文字には byte を使えます。
文字列には string を使います。
var name string
name = "aorange"
2. 基本型の変換
byte という別名により、uint8 と同じ型のまま、バイトとしての用途を明確にできます。
var a int8 = 12
var b = uint8(a)
var f float32 = 12.3
var g = int(f)
// 字符转换为数字,这种情况可能会出错,有err返回
var isrt = "12"
var i, err = strconv.Atoi(isrt)
if err!= nil {
fmt.Println("转换失败")
}
//数字转字符串类型,理论上不会出错,没有err返回
var i = 12
var s = strconv.Itoa(i)
3. 書式変換と解析
文字列を float32 や bool に変換します。 ほかの型の値を文字列に変換します。
var s = "12.3"
var f, err = strconv.ParseFloat(s, 32) // 32表示32位浮点数
//ParseInt进行进制转换
parseInt , err := strconv.ParseInt(s: "12", 8, 64)//8表示8进制,64表示64位
//此时输出结果为10进制的10
//有关bool类型的转换
parseBool, err := strconv.ParseBool(s: "true")
//转换失败parseBool结果为零值,即false,err不为空
//true,t,T,y,Y,1,
//false,f,F,n,N,0
//其他结果转换可能失败
//基本类型转字符串
strconv.FmoatBool(b: true)
fmt.Println(b)
//其他的转换可以找源码看看,都差不多,都是用的strconv.FormatXXX
変換に失敗する例を示します。

4. 演算子と式
細かい点は必要なときに調べます。よく使う演算子は C++ と似ています。
4.1. 算術演算子
![]()
4.2. 比較演算子
![]()
4.3. 論理演算子

4.4. 代入演算子

4.5. ビット演算子
適切なアルゴリズムではビット演算が性能に役立つ場合があります。ただし意味を保つ必要があり、算術演算より常に速いと決めつけず測定します。



4.6. Go の演算子の優先順位
優先順位を示します。


基本は使ううちに慣れていきます。型や変換には、言語をまたいだ共通点も多くあります。