go初学篇(2)

前言:

上一节把go的相关环境以及配置,以及goland的下载创建项目说了一下。做完这些以后我们就可以开始好好认识学习这门语言了,在学习之前,要知道go语言是C系的,与java等面向对象不同,它没有面向对象的概念,也没有类,但并不是说它难学,相反它的写法看上去和js弱语言相似,但是确实一门地地道道的强语言(后面敲代码就可以看出来),学过C语言的同学应该学的更快,上手更利索一些,因为go的研发者就是奔着让C系的程序员容易快速上手去的。好了,废话不多说,我们这篇主要围绕go的基本语法,变量,数据类型来说。

1.变量,常量

变量

变量一般就是存储特定的值并且还占有一定内存,说白了就是一块内存,拿来存数据的,在整个程序运行的过程中,它存的数值可以改变,它的命名规范:以字母或下划线开头,由一个或多个字母、数字、下划线组成

1.1声明变量

go中声明单个变量一般用的是var关键字

声明一个变量,以int为例

第一种,指定变量类型,声明后若不赋值则使用默认值

第二种,不指定变量类型,由于go的强语言特性,它自己可以根据后面的值来推断前面变量的类型

第三种,省略var但这一般只能用在函数体里

这里不要去质疑这个函数体,我是随便写的便于理解而已,不要去管无关的事情,只需要知道这种方式只能用于函数体内,不可用于全局变量的声明以及赋值

注意::=左边的变量最好不要是已经声明过的,多个变量同时声明,最少要有一个是新的,不然编译出错

1.2多变量声明

第一种:逗号分开,声明赋值分开同样不赋值存在默认值

第二种:直接赋值,可以不指明类型 

 

第三种:用集合的形式来统一管理 

 1.3变量注意事项

变量只有先定义了才能使用

定义的变量名在同一个作用域不能冲突

:=定义的左边的变量名至少有一个是新的(前面说过),而且:=不能定义全局变量

不像java等语言,在go中为了方便后序的管理,在go中强制要求定义过的变量必须使用,不然编译不通过(在以前这些东西全靠个人是因为各大互联网公司对于程序员的信任,一般都是通过书面形式要求项目开发者),go这样做就可以使开发团队将更多的精力放于开发上

常量

1.1声明常量

我这里就简单说了,和变量的定义方式上,除了第三种不能用,其他两种形式上,就是把var关键字变为const,而且在声明的时候必须赋值,下面贴上所有的实例代码

注意最后一条常量组不指定类型初始值时,与上一行非空常量右值相同

常量的注意事项:

  • 常量的数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串

  • 定义但没有使用的常量,在编译的时候,是不会报错的

1.2iota

iota,被编译器修改的特殊常量

iota用法

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1(这个时候只用第一个后面写iota就行,直到遇见不同类型的值停止)

运行结果

如果中断iota自增,必须显式恢复。

自增默认是int类型,当然也可以显示指定类型

数字常量不分配存储空间,不用像变量那样通过内存寻址来取值,所以就无法获取地址

 2.基础数据类型

基本数据类型

2.1 布尔型bool

布尔型的值只能是常量 true 或者 false。

一个简单的例子:var a bool = true

2.2 数值型

1、整数型

go的整数型分的很细

int8        有符号 8 位整型 (-128 到 127)      长度:8字节

int16      有符号 16 位整型 (-32768 到 32767)

int32      有符号 32 位整型 (-2147483648 到 2147483647)

int64       有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

uint8      无符号 8 位整型 (0 到 255)    8位都用于表示数值:

uint16     无符号 16 位整型 (0 到 65535)

uint32     无符号 32 位整型 (0 到 4294967295)

uint64     无符号 64 位整型 (0 到 18446744073709551615)

除了需要使用特定大小的整数,通常应该使用int来表示整数。

2.3、浮点型

float32       IEEE-754 32位浮点型数

float64      IEEE-754 64位浮点型数

complex64   32 位实数和虚数

complex128   64 位实数和虚数

2.4、其他

byte        类似 uint8

rune       类似 int32

uint        32 或 64 位

int          与 uint 一样大小

uintptr    无符号整型,用于存放一个指针

2.5 字符串型

字符串是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。

var str string ="菜菜的涛"

2.6数据类型转换

语法格式就是Type(Value)

常数:有需要的时候,会自动转型

变量:需要自己手动转型 T(V)

想要更深理解参考(2)Go的数据类型转换 - Go语言中文网 - Golang中文社区 (studygolang.com)

复合类型

指针
数组
结构体
Channel 通道
函数
切片
接口
Map 映射

感觉我写的还行的点个订阅吧

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值