1. 变量(变量由字母、数字和下划线组成,且不能以数字开头!)
      1.1 第一种

     var  name type    // 未赋值时使用默认值
    name = value

1.2 第二种: 根据所赋的值,自行判断变量类型
                      var name = value
     1.3 第三种: 省略var(这种方式只能用于函数体内,而不能用于全局变量的声明与赋值)
                       name := value         //  := 左侧的变量应该是未声明过的

      (多个变量同时声明时,至少保证有一个新变量)

     eg:
var a int = 10
var b = 10
a, c := 8, 10 //仅在函数体内使用,其中c为新变量

1.4 多变量声明
           第一种:以逗号分隔,声明与赋值分开

      var  a, b, c (int)
      a, b, c = 1, 2, 3

第二种: 直接赋值,多个变量可以是不同类型

        var a, b, c = v1, s2, n3

第三种: 集合类型

       var (
name1 type1
name2 type2
)                       

注意:如果声明了一个局部变量却没有在该代码块中使用它(单纯地赋值不算使用),此时会得到编译错误!!!

2. 常量
   2.1 显式类型定义:

         const a string = "123"

2.2 隐式类型定义:

         const a = "123"

2.3 枚举:

        const (
Unknown = 0
Female = 1
Male = 2
)

“不是枚举”——当常量组中的常量不指定类型和初始化值,则其类型与上一行非空常量右值相同!

        const (
x uint16 = 16
y
m = "abc"
n
)
      // 所以,其中y是uint16类型,n是string类型

2.4 特殊常量 iota —— 一个可以被编译器修改的常量。在每一个const关键字出现时,被重置为0。然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

       const (
a = iota   //1
b = iota  //2
c = iota  //3
)

可以简写为如下形式:

        const (
a = iota //1
b   //2
c   //3
)

♦下面这个例子一定要认真看看:

     const (
a = iota   // 0
b   // 1
c   // 2
d = "ha"   // 独立值,iota += 1 ("中断自增"——iota依然在计数,按照行序自增。)
e    // "ha" iota += 1
f = 100   // iota += 1
g   // 100 iota += 1
h = iota   // 7,恢复计数(必须显式恢复自增)
i   // 8
)
fmt.Println(a, b, c, d, e, f, g, h, i)
输出结果:0 1 2 ha ha 100 100 7 8

3. 基本数据类型
3.1 布尔型bool:  常量true和false
3.2 整型
   int8 有符号8位整型 (-128 到 127)       uint8 无符号8位整型 (0 到 255)
   int16 有符号16位整型 (-32768 到 32767)    uint16 无符号16位整型 (0 到 65535)
    int32、 int64、 uint32、 uint64
                                
    其它:byte类似于uint8, rune类似于int32, uint——32或64位, int与uint大小一样,
               uintptr 无符号整型,用于存放一个指针。
3.3 浮点型
     float32    32位浮点数, float64
     complex64  32位实数和虚数(复数), complex128
3.4 字符串型 string.

Go语言学习笔记(2)——变量、常量的更多相关文章

  1. Go语言学习笔记三: 常量

    Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = &qu ...

  2. [C语言学习笔记四]变量与系统的交互

    使用 const 创建常量和使用 volatie 优化变量 C语言中使用 const 定义常量. 例如: const INT a = 10; 此处如果添加a = 20;,编辑器则会报错,因为此处 a ...

  3. Go语言学习笔记(二) [变量、类型、关键字]

    日期:2014年7月19日 1.Go 在语法上有着类 C 的感觉.如果你希望将两个(或更多)语句放在一行书写,它们 必须用分号分隔.一般情况下,你不需要分号.   2.Go 同其他语言不同的地方在于变 ...

  4. c语言学习笔记 const变量

    在c语言的编程过程中经常会遇到有常数参加运算的运算,比如这种. int a=100*b; 这个100我们叫常数或者叫常量,但是程序中我们不推荐这种直接写常数的方法,有两个缺点. 第一是程序可读性差. ...

  5. python的学习笔记01_2变量 常量 注释 用户交互 格式化输出

    变量是什么? 变量的作用  Variables are used to store information to be referenced and manipulated in a computer ...

  6. 吴裕雄--天生自然C++语言学习笔记:C++ 常量

    常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量. 常量可以是任何的基本数据类型,可分为整型数字.浮点数字.字符.字符串和布尔值. 常量就像是常规的变量,只不过常量的值在定义后不能进行 ...

  7. Go语言学习笔记1 变量,类型以及赋值

    1.变量 1.1 声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int ...

  8. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  9. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

随机推荐

  1. DB2 字符串的字段转为整形时的问题

    正确语句: select int(cast(substr(dpt_leader_ids,4,posstr(dpt_leader_ids,',0)')-4) as varchar(8))), d.* f ...

  2. mysql实现分页的几种方式

    mysql实现分页的几种方式: 第一种:使用框架自带的pageable来进行分页 package com.cellstrain.icell.repository.repositoryImpl; imp ...

  3. 2018.10.01 bzoj3237: [Ahoi2013]连通图(cdq分治+并查集)

    传送门 cdq分治好题. 对于一条边,如果加上它刚好连通的话,那么删掉它会有两个大集合A,B.于是我们先将B中禁用的边连上,把A中禁用的边禁用,再递归处理A:然后把A中禁用的边连上,把B中禁用的边禁用 ...

  4. 2018.09.16 loj#10242. 取石子游戏 2(博弈论)

    传送门 同样有一个显然的结论. 如果a1a_1a1​ xorxorxor a2a_2a2​ xorxorxor a3a_3a3​ xor...xor...xor... xorxorxor ana_na ...

  5. android apk签名原理

    //这个md5跟腾讯的对应 public Signature getPackageSignature( ){ Context context=getContext(); String packageN ...

  6. 【Unity】2.4 层次视图(Hierarchy)

    分类:Unity.C#.VS2015 创建日期:2016-03-29 一.简介 层级视图 (Hierarchy) 包含当前场景中的每个游戏对象 (GameObject).有些是三维模型等资源文件的直接 ...

  7. 51Nod 1376 最长递增子序列的数量 (DP+BIT)

    题意:略. 析:dp[i] 表示以第 i 个数结尾的LIS的长度和数量,状态方程很好转移,先说长度 dp[i] = max { dp[j] + 1 | a[i] > a[j] && ...

  8. 常用算法 (JS实现)

    全排序列 function swap(array,a,b){ var m=array[a]; array[a]=array[b]; array[b]=m; } function full_sort(a ...

  9. ajax和SSH请求中乱码的一些解决方法

    乱码的原因无非就是两端的编码方式不同. ajax方的编码 ajax无论是get还是post,都可以在content-type中设置charset为utf-8,或者beforesend中在sethead ...

  10. ggdl

    \documentclass{article} \usepackage{geometry} \geometry{hmargin=1cm,vmargin=1cm} \usepackage{tikz} % ...