[go语言]基本数据类型

sxt102400 · · 2263 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
1 基本数据类型
go的变量类型有以下几种
1)布尔型(bool:1位)
布尔类型只有true和false两个值
2)整型(int) 
字节型: byte (相当于int8:1位)
字码型:rune  (相当于int32:4位)
有无符号: int unit (无符号加前缀u)
        根据位数: int8 int16 int32( int64
3)浮点型(float)
根据位数: float32 float64
4)字符串型(string) 
string类型是使用双引号""或者反引号``引起来的字符串变量,采用UTF-8编码.
5)复数类型(complex)
根据位数 complex64 complex128
6)错误类型(error)

说明
a.不同类型,不同长度之间不允许相互转换,不能相互赋值。
b.字符串类型变量值是不可修改的。不能修改里面的字符。
c.根据平台确定,32位系统"int"和"int32"属于同一种类型,但是byte 和int8是同一种类型



2 定义变量
1)定义变量
如果定义变量,没有赋值的话,编译时候会自动赋初始值。
var 变量名 变量类型
比如: 
var x int
var x,y int


2)定义变量并赋初值
var 变量名 变量类型 = 变量值
var 变量名 = 变量值
变量名:=变量值
比如:
var x int = 1
var x,y = 1,2
x,y:=1,2

3)多变量声明或定义
var x,y,z int //声明类型相同变量
var( //声明类型不同变量
x int
y float
z bool
)
var x,y = 1,1.3 //变量赋值
x,y := 1,1.3 //变量赋值


3)变量初始化:
当使用var定义变量,会自动初始化为零值。
bool:false
整型:0
浮点型:0.0
string类型:""
指针,函数,接口,sclice,channel,map:nil

4)其他注意点。
a.Go编译器对声明却未使用的变量报错。可以使用_变量代替
b._为特殊的变量名,任何赋给其的值都会被抛弃。

3 常量
1)使用const声明常量,声明是可省略类型
const 常量名 变量类型 = 变量值
const 常量名 = 变量值 (省略类型)
例如
const x int = 2
const y = 2
2)枚举值
说明:可使用itoa来代表,每次使用从0加1.例如
const(
x = iota  
y = iota  
z = iota  
)
则x,y,z分别为0,1,2。必须放在()才会递增。
3)分组。多个定义可以使用分组,如下:
var (
xm = 1
y  = 2
)
const(
xm = 1
y  = 2
)
说明:
常量不支持后缀。如L,F等


4 类型转换
1)不支持隐式转换。go语言不会对不同类型变量做任何隐式转换。
2) 只支持少数几种类型的强制转换。
允许的转换
1)string转为字节,string转为int slice
[]byte(str)   可以将字符串类型转为字节类型
[]int(str)    可以将字符串类型转为int slice类型

2)字节转为string
string(b) 可以将字节类型转为字符串类型

3)int slice转为string
string(intslice) 可以将int slice类型转为字符串类型

4)整数互转
unit8(intx)

5)整数,浮点互转
int(floatx)     //会截断小数字部分
float(intx)

6)自定义转为
如果2个类型有相同字段。尝试可以互相转换。

整数字面     
十进制数字面   =  { 十进制数字 } .
八进制数字面   = "0" + { 八进制数字 } .
十六进制数字面 = "0" + ( "x" | "X" ) + { 十六进制数字 } .

浮点数字面 = 十进制数 "." [ 十进制数 ] [ 指数E ] |
             十进制指数E |
             "." 十进制数 [ 指数E ] .
十进制数   = 十进制数字 { 十进制数字 } .
指数E       = ( "e" | "E" ) [ "+" | "-" ] 十进制数 .

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:sxt102400

查看原文:[go语言]基本数据类型

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

2263 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传