GO语言基本数据类型总结电脑资料.docx

上传人:b****5 文档编号:7544646 上传时间:2023-01-24 格式:DOCX 页数:8 大小:16.29KB
下载 相关 举报
GO语言基本数据类型总结电脑资料.docx_第1页
第1页 / 共8页
GO语言基本数据类型总结电脑资料.docx_第2页
第2页 / 共8页
GO语言基本数据类型总结电脑资料.docx_第3页
第3页 / 共8页
GO语言基本数据类型总结电脑资料.docx_第4页
第4页 / 共8页
GO语言基本数据类型总结电脑资料.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

GO语言基本数据类型总结电脑资料.docx

《GO语言基本数据类型总结电脑资料.docx》由会员分享,可在线阅读,更多相关《GO语言基本数据类型总结电脑资料.docx(8页珍藏版)》请在冰豆网上搜索。

GO语言基本数据类型总结电脑资料.docx

GO语言基本数据类型总结电脑资料

GO语言基本数据类型总结电脑资料

这篇文章主要介绍了GO语言基本数据类型,较为详细的了GO语言的基本数据类型,对于GO语言的学习有一定的借鉴参考价值,需要的朋友可以参考下

本文实例总结了GO语言基本数据类型,

行注释:

//块注释:

/*...*/

可以这么说,除了数字开头的不允许,符号开头的不允许,关键字不允许,其他的Unicode字符组合都可以。

“_33”也可以是标识符、“我们”也可以是标识符。

标识符也区分大小写。

(1)、以大写字母开头的标识符是公开的。

(这个很有意思)

(2)、其他任何标识符都是私有的。

(3)、空标识符“_”是一个占位符,用于赋值操作的时候,丢弃、忽略某个值。

通常这样用:

go的方法一般会返回2个值,一个通常的返回、一个错误标识。

如fmt.Println(x)会返回2个值,一个是打印的字节数,一个是相应的error值,那么count,_=fmt.Println(x)这行代码就忽略了相应的error值。

(1)可以自动推断类型,

如:

代码如下:

consta=5

(2)可以显式指定类型,

如:

代码如下:

constaint16=6//int16是一个整形类型

(PS:

go语言常量、变量定义的格式均为:

关键字常量(变量)名类型=值)

(3)可以一次声明多个常量,

如:

const(a=0;b=2),这叫分组声明。

此时,第一个常量被默认设置为0,后续的常量默认设置为前面常量的表达式。

(PS:

但是希望用const(ab)表示a=0,b=0这样的是不行的,常量分组定义,第一个常量必须赋值、或为iota)

(PPS:

注意,go语言中一般不需要分号来表示分隔,编译器会自动在每行的末尾添加分号,当然,添加分号也没有错,不过像liteide这样的IDE的自动格式化一般会帮你把分号删除,然后帮你换行)

(4)关键字iota表示连续的无类型的整数常量,iota默认为0,并逐步递增。

即,

代码如下:

const(a=iota;b;c)

(5)一行多个赋值中,iota不相互影响。

每次iota出现,它的值为0,如:

代码如下:

const(

i,j,k=2*iota,iota,iota+2

m,n,l

此时,i、j的值均为0,k的值为2,m、n、l的值分别为2、1、3

(PS:

go语言支持一行赋多个值)

变量有2种定义方式:

(1)一种是用关键字var,

例如:

代码如下:

variint//这里会自动设置默认值0,如果是字符串,默认为空

或者:

代码如下:

vari=8//声明同时赋值,自动推导其类型

或者:

代码如下:

varkint=16//指明类型,声明并赋值

或者:

代码如下:

var(aint;bint;cint)//分组声明,跟常量类似,

(2)另一种是用快速变量声明,就是用:

=操作符,它会声明并初始化一个变量,可以自动推导类型。

不过这种声明有一个限制,它只能在函数内部使用,在函数外部会报错。

如:

代码如下:

name:

="chandlerqian"//自动推导类型为string

值得注意到是,:

=操作符是声明并初始化,就是说,在同一个作用域内,这个变量必须未声明过,不然是错误。

如下:

代码如下:

k,b:

=7,8

fmt.Printf("beforek=%d,b=%d\n",k,b)

ifk:

=1;k!

=-1{

b:

=3

fmt.Printf("innerk=%d,b=%d\n",k,b)

}

fmt.Printf("afterk=%d,b=%d\n",k,b)

在下面的if作用于内,k、b重新用:

=声明赋值,但没问题,因为出了if作用域,它们就消失了。

结果为:

beforek=7,b=8

innerk=1,b=3

afterk=7,b=8

而if语句改为这样:

代码如下:

ifk=1;k!

=-1{

b:

=3

fmt.Printf("innerk=%d,b=%d\n",k,b)

}

那么最后的输出就是:

beforek=7,b=8

innerk=1,b=3

afterk=1,b=8

可见,“=”是全局作用的赋值,而,“:

=”则会在自己的作用域内创建变量并赋值。

(3)整形字面量的类型会自动推断为int,浮点字面量会自动推断为float64,复数字面量会自动推断为plex128

Go语言会严格筛选使用比较操作符(<、<=、==、!

=、>=、>)进行比较的值。

这两个值必须是相同类型或实现了相同的接口。

如:

代码如下:

functest0(){

varaint=5

varbfloat32=4.4

ifa>b{

fmt.Println(">")

}

}

由于a和b类型不匹配,所以编译错误:

invalidoperation:

a>b(mismatchedtypesintandfloat32),再看下面这个:

代码如下:

functest1(){

varbfloat32=4.4

ifb>7{

fmt.Println(">")

}

}

这个是可以的,虽然类型不匹配,但是b与无类型的整形数值常量7比较。

无类型的数值常量可以用于任何比较。

希望本文所述对大家的GO语言程序设计有所帮助。

模板,内容仅供参考

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1