1 基本类型

  • 零值并不等于空值,而是当变量被声明为某种类型后的默认值,

    通常情况下值类型的默认值为0,bool为false,string为空字符串,引用为nil。

1.1 布尔类型

  • 关键字:bool
  • 长度:1字节
  • 取值范围:true, false
  • 注意事项:不可以用数字代表true或false
  • 默认值为false

1.2 整型类型

1.2.1 整型

  • int/uint 根据运行平台可能为32或64位
  • int8/uint8(byte) 长度1字节,uint别名byte
  • int16/uint16 长度2字节
  • int32(rune)/uint32 长度4字节
  • int64/uint4 长度8字节
  • uintptr 足够保存指针的 32 位或 64 位整数型

1.2.1 浮点型

  • float32 长度4字节,小数精确到7位
  • float64 长度8字节,小数精确到15位

1.3 复数类型

  • complex64 长度8字节
  • complex128 长度16字节

1.4 其他类型

  • array
  • struct
  • string

1.5 引用类型

  • slice
  • map
  • chan

1.6 接口类型

  • interface

1.7 函数类型

  • func

1.8 指针

在Go当中不

支持指针运算以及”->”运算符,而直接采用”.”选择符来操作指针

目标对象的成员

  • 操作符”&”取变量地址,使用”*”通过指针间接访问目标对象
  • 默认值为 nil 而非 NULL

2 声明与赋值

2.1 单个变量的声明与赋值

  • 变量的声明格式:var <变量名称> <变量类型>
  • 变量的赋值格式:<变量名称> = <表达式>
  • 声明的同时赋值:var <变量名称> [变量类型] = <表达式>
var a int   //变量声明
a = 123 //变量赋值
//声明同时赋值
var b int = 12
//省略类型,系统自动推断
var c = 12
//局部变量的简写
d := 12

2.2 多个变量的声明与赋值

  • 全局变量的声明可使用 var() 的方式进行简写
  • 全局变量的声明不可以省略 var,但可使用并行方式
  • 所有变量都可以使用类型推断
  • 局部变量不可以使用 var() 的方式简写,只能使用并行方式
var (
//常规声明与赋值
a = "hello"
//并行方式并自动推断类型
b , c = 1 , 2
// d := 1 编译错误,全局变量不能用:=
) //并行声明多变量
var a,b,c,d int
//并行赋值
a,b,c,d = 1,2,3,4
//并行声明与赋值
var e,f,g int = 1,2,3
//省略类型,并行声明与复制类型自动推断
var i,j,k = 1,2,3
//多个变量声明与复制的最简单写法
a,b,c := 1,"hello",2

2.3 变量的类型转换

  • Go中不存在隐式转换,所有类型转换必须显式声明
  • 转换只能发生在两种相互兼容的类型之间
  • 类型转换的格式:
	<ValueA> [:]= <TypeOfValueA>(<ValueB>)
//相互兼容的类型可以通过类型转换
var a float32 = 1.0
b:=int(a) //编译错误
var c bool = true
d:=int(c)

3 常量

3.1 常量的定义

  • 常量的值在编译时就已经确定
  • 常量的定义格式与变量基本相同
  • 等号右侧必须是常量或者常量表达式
  • 常量表达式中的函数必须是内置函数
//定义单个常量
const a int = 1
const b = 'A'
const(
c = 1
d = "hello"
len = len(d)
) //定义多个常量
const i,j,k = 1,2,3
const(
x,y,z = "1",2,"3"
)

3.2 常量的初始化规则与枚举

  • 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式
  • iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
  • 通过初始化规则与iota可以达到枚举的效果
  • 每遇到一个const关键字,iota就会重置为0
const (
//a和b都为“A”
a = "A"
b
//c,d分别为2,3
c = iota
d
//e为65
e = 'A'
)
const(
//e,f分别为0和1
e = iota
f
)

GO入门——2. 变量的更多相关文章

  1. es6 快速入门 系列 —— 变量声明:let和const

    其他章节请看: es6 快速入门 系列 变量声明:let和const 试图解决的问题 经典的 var 声明让人迷惑 function demo1(v){ if(v){ var color='red' ...

  2. 151008-JS初级完成,PHP入门(变量常量等)-没假放了

    hi 今天是10月8号,你懂的,好困好困哒 上午搞定了JS的入门篇,真的是入门篇,基本都是JS做基本的输出.样式变化.惯例给出代码 <!DOCTYPE HTML><html>& ...

  3. (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找

    环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...

  4. ES6入门之变量的解构赋值(二)

    前言 在上一章 ES6入门之let和const命令中我们对ES6的相关语法已经有了初步了解,上一章中我们主要学习了三大部分的内容,let命令的使用,块级作用域,const命令的使用,那么从本篇博客将进 ...

  5. PHP语法入门以及变量

    1PHP语法入门 1.1PHP是编译型语言      编译语言和解释语言的区别在于是否保存最终的可执行程序. 1.2PHP定界符       因为PHP是脚本语言,所以需要定界符 <?php e ...

  6. day04 python入门(变量,基本数据类型)

    python入门学习 来自egon的学习套路 在每次遇到一个新事物的时候,要学三步: xxx是什么? 为什么要有xxx? ​ 大前提:python中所有出现的语法都是为了让计算机能够具有人的某一个功能 ...

  7. [C语言入门笔记]变量与数据类型

    变量与数据类型 什么是变量? 变量是一个变化的量 是内存中的一个空间 变量的定义方法是什么? 数据类型 变量名 = 值; 数据类型有哪些? 整型int 浮点型float double 字符型char ...

  8. 02-Python入门学习-变量

    一.编程语言介绍1.机器语言:直接用二进制编程,直接控制硬件,需要掌握硬件的操作细节优点:执行效率高缺点:开发效率低 2.汇编语言:用英文标签取代二进制指令去编写程序,直接控制硬件,需要掌握硬件的操作 ...

  9. Linux基础入门-环境变量与文件查找

    一.环境变量: Shell中的变量也有不同的数据类型,不用专门指定类型名,可以参与运算,有作用域限制. declare tmp 创建一个变量 可以不用专门声明,可以即用即创建 tmp=shiyanlo ...

  10. Javascript入门(二)变量、获取元素、操作元素

    一.变量 Javascript 有五种基本数据类型 number.String.boolean.undefined.null 一种复合类型:object 二.使用getElementById方法获取元 ...

随机推荐

  1. 19) maven 项目结构:聚集

    Project Aggregation [,æɡrɪ'ɡeɪʃən] https://maven.apache.org/guides/introduction/introduction-to-the- ...

  2. Linux常用备份恢复工具

    在 Linux 中可以通过各种各样的方法来执行备份.所涉及的技术从非常简单的脚本驱动的方法,到精心设计的商业化软件.备份可以保存到远程网络设备.磁带驱动器和其他可移动媒体上.备份可以是基于文件的或基于 ...

  3. Python3 安装 PyQt5 -pycharm 环境搭建

    执行命令: pip3 install PyQt5 PyQt5+python3+pycharm开发环境配置   1.下载PyQt 官方网站:http://www.riverbankcomputing.c ...

  4. hadoop两大核心之一:MapReduce总结

    MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,MapReduce程序 本质上是并行运行的,因此可以解决海量数据的计算问题. MapReduce任务过程被分为两个处理阶段 ...

  5. JMS 消息队列

    1.jms  broker服务器:Broker:消息队列核心,相当于一个控制中心,负责路由消息.保存订阅和连接.消息确认和控制事务

  6. ssh连接超慢解决

    手头有台Linux服务器ssh登录时超级慢,需要几十秒.其它服务器均没有这个问题.平时登录操作都默默忍了.今天终于忍不住想搞清楚到底什么原因.搜索了一下发现了很多关于ssh登录慢的资料,于是自己也学着 ...

  7. 使用xftp连接到ftp服务器即常见问题的解决

    使用xftp连接到ftp服务器 新建连接 配置连接 点击确定,连接到ftp 常见问题 中文乱码问题 解决: 点击连接设置按钮 修改编码方式 最后确定保存!刷新一下,就不在乱码了;

  8. 背水一战 Windows 10 (54) - 控件(集合类): ItemsControl 的布局控件 - OrientedVirtualizingPanel, VirtualizingStackPanel, WrapGrid

    [源码下载] 背水一战 Windows 10 (54) - 控件(集合类): ItemsControl 的布局控件 - OrientedVirtualizingPanel, VirtualizingS ...

  9. BZOJ 5194--[Usaco2018 Feb]Snow Boots(STL)

    5194: [Usaco2018 Feb]Snow Boots Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 81  Solved: 61[Submi ...

  10. git fetch 、git pull 与 git pull --rebase

    1. git fetch 与 git pull 都是从远程拉取代码到本地,git fetch只是拉取到本地,git pull不仅拉取到本地还merge到本地分支中.所以git pull是git fet ...