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. poj 2299 Ultra-QuickSort(归并排序,树状数组,线段树)

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...

  2. Camtasia studio8.0破解方法

    Camtasia Studio 8.0 注册说明: 1.安装时使用以下信息注册: 用户名: Honorary User密钥: GCABC-CPCCE-BPMMB-XAJXP-S8F6R 或者是 Nam ...

  3. 2.2.11同步synchronized方法无限等待与解决

    同步方法容易造成死循环. package com.cky.bean; /** * Created by edison on 2017/12/8. */ public class Service { s ...

  4. weat!!团队

    摘要: 团队名称:weat!! 团队成员:刘波 崔和杰 简介: 刘波:性别男,爱好:动漫,徒步旅行.在组内负责程序编写这一部分. 优点:认真负责,不懂就会去问. 崔和杰:性别男,爱好:篮球.在组内负责 ...

  5. Ng第十六课:推荐系统(Recommender Systems)

    16.1  问题形式化 16.2  基于内容的推荐系统 16.3  协同过滤 16.4  协同过滤算法 16.5  矢量化:低秩矩阵分解 16.6  推行工作上的细节:均值归一化 16.1  问题形式 ...

  6. STL其他--<tuple>用法【C11】

     tuple 库 tuple 库 是能够将不同类型的对象组合起来形成一个对象.和pair 对象一样,但是可以组织多种不同类型的元素. tuple中的元素类型是在编译时期决定的.与<utility ...

  7. QOpenglWidget 与QGLWidget的选择

    1. QGLWidget 是Qt OpenGL模块,但是从其官方说明,推荐在Qt5.4 之后,使用QOpenglWidget版本,具体说明如下: Note: This class is part of ...

  8. Maven中的配置文件

    <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.or ...

  9. iOS 使用代码创建约束,实现自动布局

    ///与下面约束对象属性截图相对应//使用Auto Layout约束,禁止将Autoresizing Mask转换为约束 [self.funcView setTranslatesAutoresizin ...

  10. MCU编程_基础

    包含头文件符号的区别 有这样的包含头文件语句 #include <reg52.h> #include"reg52.h" 两者区别在于: <>:编译器先进入软 ...