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. re模块,subprocess模块

    """ RE是什么 正则 表达 式子 就是一些带有特殊含义的符号或者符号的组合 它的作用是对字符串进行过滤 在一堆字符串中找到你所关心的内容 你就需要告诉计算机你的过滤规 ...

  2. 《SQL必知必会》笔记

    SQL必知必会(第4版) 作者:[美]Ben Forta 本书介绍了sql在不同数据库工具(Oracle.SQLite.SQL server.MySQL.MariaDB.PostgreSQL...)是 ...

  3. Scott-Knott test 配置与使用

    安装最新版本的 R R安装镜像 Download R 3.3.0 for Windows (62 megabytes, 32/64 bit) 理由 Scott-Knott 包由 R 3.2.5 编译的 ...

  4. mssql中按周进行表分区的方法

    创建一个包含了一个持久化计算列的表,类似于下面.然后以这个列作为分区的依据. CREATE TABLE [dbo].[test] ( ) NOT NULL , [time] [DATETIME] NU ...

  5. csdn 不登录浏览全文 chrome 浏览器

    1将此文章存到书签栏. 2 右键点击保存到书签栏的这个书签,然后点击修改. 3 名称改为:CSDN查看全文,网址改为: javascript:$("#article_content" ...

  6. Mac怎么安装并配置Homebrew?

    1.在打开的命令行工具中输入如下语句: 复制内容到剪贴板 ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com ...

  7. Django:常见的orm操作

    ArticlePost模型对应的表如下: 1.查询两个日期之间2019.04.20到2019.04.25之间的文章 import datetime from.models import Article ...

  8. C# 开源仪表盘库—Agauge App

    1.简介 有个叫A.J.Bauer 的大神在System.Windows.Forms.Control类的基础上建立了一个显示各种仪表盘的类.                   英文版简介:C# Tu ...

  9. MVC 5使用ViewData(模型)显示数据

    看过此篇<MVC 5使用ViewData(对象)显示数据>http://www.cnblogs.com/insus/p/3377178.html 都明白在控制器使用ViewData(obj ...

  10. 【BZOJ5188】 [Usaco2018 Jan]MooTube

    BZOJ5188 [Usaco2018 Jan]MooTube 突然发现BZOJ没有题目,放题面. 题意翻译 题面描述 在业余时间,Farmer John创建了一个新的视频共享服务,他将其命名为Moo ...