go语言的变量与基本数据类型

  1. go的变量声明方式
package main
import "fmt"
main() {
	var age int = 8 //定义并赋值

	var age1 int //定义变量,但不对其进行初始化,默认值为0
	age1 = 18 //赋值

	//定义并赋值,但定义时不需要手动声明类型,
	//而是由编译器进行自动类型自动类型推断。
	var age2 = 18 

	age3 := 4 //省略var和变量类型,直接使用:=进行赋值和自动类型推断。

	//不能为变量赋予与其类型不匹配的值
	var age4 int = 8.5 //该语句会在编译时报错

	//对各个变量的值进行输出,go语言要求变量定义后必须使用。
	fmt.Println(age,age1,age2,age3,age4)
}
  1. 一次性定义和赋值多个变量
var n1,n2,n3 int //n1,n2,n3都是int型,其值为初始值
var n1,name,n2 = 10,"jack",20 //不定义初始类型,由编译器进行推断。
n1,n2 := 8, 1.8 //使用:=进行多变量类型初始化。

3.全局变量和局部变量
函数体外的变量为全局变量,全局变量可以使用如下方式定义:

var (
 a1 = 10
 a2 = 2.8
 a3 ="name"
)

4.golang的数据类型
在这里插入图片描述

  1. 整型
    分为有符号整数int和无符号整数uint,每个还可细分为8,16,32,64位整数。
    如果赋值超出界限,go会报错。
    int和uint具体的位数根据当前系统决定,32位系统则为32位,64位系统为64位。
    省略整数值的变量类型时,其类型推断为int

  2. 浮点数

浮点型的存储格式:
符号位+指数位+尾数位
在这里插入图片描述
在这里插入图片描述

  1. 字符型
    英文字符可以使用byte存储,但中文字符无法使用byte存储。
    中文字符可以使用rune进行存储,rune等价于int32
    Golang使用的字符集是Unicode字符集,其对应的编码方式是UTF-8编码
    在这里插入图片描述
    输出byte对应的字符可用如下格式:
fmt.Printf("%c",num)
//go中的一些特殊字符如",\等字符无法直接赋值给变量,需要使用转义字符,使用格式如下
a := '\"'
  1. 布尔型
    bool取值仅有true 和 false
    其占用空间大小为1字节
    println输出值即为true和false

5.字符串类型
字符串类型变量一旦被定义,其中的字符不可被修改。

var str1 string = "abcd"
st1[0] = 'a' //报错,字符串赋值后,无法对其中的元素进行修改。

有两种定义方式,当无特殊字符时,直接使用双引号 ” 即可,当有特殊字符如换行,双引号,制表,空格等,此时使用反引号

var str1 = "aabbbcc"
var str2 = `body=1 
cotext = 192.168.0.1`
//str2的结果为:
//body=1
//cotext = 192.168.0.1
  1. golang类型转换
    Go的类型转换只有显式类型转换(强制类型转换)
    强制类型转换方法: v = T(v2) //T为强转的类型

    上图中n9不会编译通过,因为128不在int8的范围内,会报无法将int8与int类型相加的错误。

7.整型、浮点型 与 字符串型的相互转换
1、其他类型转string类型
(1)使用fmt.Sprintf()函数进行转换,具体方式见下图代码
在这里插入图片描述
(2)使用strconv包下的各种Format函数,具体方法见代码截图
在这里插入图片描述

string转int, float, uint, bool
使用strconv下的各个解析函数ParseInt, ParseBool, ParseUint等
要注意各个Parse函数的返回值都有两个,第二个返回值为erro
在这里插入图片描述

需要注意的是,ParseInt和ParseFloat的第一个返回值都是64位的,即传入参数bitSize(最后一个参数)仅定义精度,不改变返回值的类型。
这使得我们用于接收的变量也要设置为64位,若需更改精度需要另加一条语句进行强制类型转换。(上图中num1和f1都必须为64位)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值