go基本数据类型转换

PHP类型转化

PHP类型转化是自动转化的

1
2
3
4
5
6
7
$a = 1;
$b = 2;
$c = "string";
$d = true;
echo $a+$b; //3
echo $a+$d; //3 true->1
echo $a.$c; //1string $a转为字符串

go类型转化

数值类型

go数值转化需要注意类型的范围,如果将一个范围小的转为范围大(int16->int32)的可以正常转化,但是如果将一个范围大的转为小(int32->int16)的,就会发生精度丢失(被截断);

1
2
3
4
5
6
7
8
9
10
//查看数值范围
fmt.Println("int8 range:",math.MaxInt8,math.MinInt8)
fmt.Println("int16 range:",math.MaxInt16,math.MinInt16)
fmt.Println("int32 range:",math.MaxInt32,math.MinInt32)
fmt.Println("int64 range:",math.MaxInt64,math.MinInt64)

//int8 range: 127 -128
//int16 range: 32767 -32768
//int32 range: 2147483647 -2147483648
//int64 range: 9223372036854775807 -9223372036854775808

字符串与其他类型转化

1
2
3
4
5
6
7
8
9
10
11
12
	
v1 := "Livfer"
fmt.Println(v1[0])

v2 := 76
fmt.Println(string(v2))

v1 := []byte{'h', 'e', 'l', 'l', 'o'}
v2 := string(v1) // v2 = hello

//与 PHP 不同的是,Go 语言不支持将字符串类型强制转化为数值类型。
//strconv包可以实现类似PHP中字符串和其他基本数据类型之间转化

布尔类型和数值转化

go中布尔类型不能和数值进行转化,如果需要此需求的话,可自己进行判断来转化