go语言学习笔记二 数据类型,变量,数据类型转换

数据类型

类型描述范围
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 位整型-2147483648 到 2147483647
int64有符号 64 位整型-9223372036854775808 到 9223372036854775807
float32IEEE-75432位浮点型数
float64IEEE-75464位浮点型数
complex64复数32 位实数和虚数
complex128复数64 位实数和虚数
byte类似 uint8-
rune类似 int32-
uint平台相关32 或 64 位
int平台相关32 或 64 位
uintptr无符号整型,用于存放一个指针-

1.变量的定义

package main

import "fmt"

func main() {
	// 1 定义一个变量不初始化
	var n1 int
	n1 = 1
	// 定义一个变量同时初始化
	var n2 string = "2"
	// 定义变量同时初始化的简写
	var n3 = 3
	// 定义多个变量
	var n4, n5 = 4, "5"
	// 只可以在函数中定义变量的方法
	n6 := 6
	fmt.Println(n1, n2, n3, n4, n5, n6)
}

输出
1 2 3 4 5 6

2.基本数据类型转换

package main

import (
	"fmt"
	"strconv"
)

func main() {
	// 基本数据类型相互转换
	var i int = 100
	var n1 float32 = float32(i)
	// 被转换的是变量存储的数值,变量本身数据类型并没有变化(i int, n1 float32)
	fmt.Printf("1.i=%v %T n1=%v %T\n", i, i, n1, n1)

	// 转换时需要注意类型范围,如果大范围转换为小范围则输出结果按溢出处理
	var num1 int64 = 9999999999
	var num2 int8 = int8(num1)
	fmt.Printf("2.i=%v %T n1=%v %T\n", num1, num1, num2, num2)

	// 基本数据类型转string 使用fmt包转换
	var num3 int = 99
	var num4 float32 = 11.11
	var b1 bool = true
	var str string
	str = fmt.Sprint(num3)
	fmt.Printf("3.int转string: num3=%v %T; str=%v %T\n", num3, num3, str, str)
	str = fmt.Sprint(num4)
	fmt.Printf("4.float32转string: num3=%v %T; str=%v %T\n", num4, num4, str, str)
	str = fmt.Sprint(b1)
	fmt.Printf("5.bool转string: num3=%v %T; str=%v %T\n", b1, b1, str, str)

	// 使用strconv包转换
	str = strconv.FormatInt(int64(num3), 10)
	fmt.Printf("6.int转string: num3=%v %T; str=%v %T\n", num3, num3, str, str)
	// float64, fmt 输出格式, prec 精度 float64
	str = strconv.FormatFloat(float64(num4), 'f', 2, 64)
	fmt.Printf("7.float32转string: num3=%v %T; str=%v %T\n", num4, num4, str, str)
	str = strconv.FormatBool(b1)
	fmt.Printf("8.bool转string: num3=%v %T; str=%v %T\n", b1, b1, str, str)

	//使用strconv包 string 转化基本类型
	var str1 string = "10"
	var str2 string = "true"
	var str3 string = "3.1415926"
	// base 进制,bitSize int8,int32,int64
	num6, _ := strconv.ParseInt(str1, 10, 64)
	fmt.Printf("9.str转换int64:str=%v %T; num6=%v %T\n", str1, str1, num6, num6)
	b2, _ := strconv.ParseBool(str2)
	fmt.Printf("10.str转换bool:str=%v %T; num6=%v %T\n", str2, str2, b2, b2)
	f1, _ := strconv.ParseFloat(str3, 64)
	fmt.Printf("11.str转换float:str=%v %T; num6=%v %T\n", str3, str3, f1, f1)
}
输出
1.i=100 int n1=100 float32
2.i=9999999999 int64 n1=-1 int8
3.int转string: num3=99 int; str=99 string
4.float32string: num3=11.11 float32; str=11.11 string
5.boolstring: num3=true bool; str=true string
6.int转string: num3=99 int; str=99 string
7.float32string: num3=11.11 float32; str=11.11 string
8.boolstring: num3=true bool; str=true string
9.str转换int64:str=10 string; num6=10 int64
10.str转换bool:str=true string; num6=true bool
11.str转换float:str=3.1415926 string; num6=3.1415926 float64

go标准库中文文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值