Go语言的变量和常量(三)
我想吐槽下网上的很多所谓的“零基础教程”,因为那根本不算零基础。就拿语言教程来说,一上来就说怎么定义变量的怎么算零基础呢?零基础应该是先告诉你啥叫变量。
所以我从不起零基础的标题。我这也不是教程,只是我的一个记录。当然我会做笔记很仔细。
变量
go语言的变量定义跟JavaScript很像,也是用 var:
var name = "jay"
但它也不同,作为静态语言,他可以定义变量的同时指定变量类型:
var name string = "jay" var age int // 你也可以只定义不赋值
如果你定义变量时直接赋值而没有指定类型,会进行类型推断的,所以这样是错的:
var age = 12 age = "20" // 因为age初始化时被推断为int型,所以不可以变为string型。(注意:赋值操作要在函数里执行。)
除此之外,以下也是错误的,红色警示下:
var name // 定义变量时,既不赋值也不指定类型,错误 var str = 'hello,world' // 字符串不可以使用单引号,单引号在 go 中表示一个字符
批量声明
go 支持批量定义变量,两种方式:
// 方式一
var age,name = 12,"jay" // 方式二
var (
a = 1
b = "hello"
)
短变量声明
在函数内部,你可以使用一种更简单的方式定义变量:
package main import (
"fmt"
)
// 全局变量m
var m = 1 func main() {
n := 2
m := 3 // 函数内部可使用更简单的变量定义方式
fmt.Println(m, n)
}
匿名变量
匿名变量用一个下划线 _
表示,多用于占位,表示忽略值。它不占用命名空间,不会分配内存,所以匿名变量之间也不存在重复声明:
var a,_ = 1,2
var _,b = 3,4 // _ 不会报重复声明的错误 func main() {
fmt.Println(a) //1
fmt.Println(b) //4
fmt.Print(_) // 报错,因为 _ 不是一个值
}
常量
go 中的常量跟 es6 中的也像,也是使用 const :
const pi = 3.1415
const e = 2.7182
常量被定义时必须赋值,并且后续不能再改变常量的值。
多个常量一起定义:
const (
pi = 3.1415
e = 2.7182
)
const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如:
const(
a = 10
b
c
) 等同于:
const(
a = 10
b = 10
c = 10
)
a,b,c的值都是10
iota
这是一个有趣的东西。iota 是 go 语言的常量计数器,只能在常量的表达式中使用。
iota 在 const 关键字出现时将被重置为 0。const 中每新增一行常量声明将使 iota
计数一次。
来看几个例子:
const(
a = iota // 0
b // 1
c // 2
)
const(
a = iota // 0
b = 100 // 100
c = iota // 2
d // 3
)
const(
a, b = iota + 1, iota + 2 // 1,2
c, d // 2,3
e, f // 3,4
)
你有get到它的点吗?
就这样。
Go语言的变量和常量(三)的更多相关文章
- Go语言 2 变量、常量和数据类型
文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ Go学习群:415660935 2.1 变量 变量是对一块内存空间的命名,程序可以通 ...
- C语言之变量与常量的介绍
一 标示符 标识符:可以理解为是变量名.名字常量表示法的常量名,但是不仅限于这两个 命名规范: 1.起名要有意义,基本要做到一看名字就知道是用来干嘛的(要求你遵守,但不会报错,希望能够养成这样的好习惯 ...
- go语言学习——变量、常量、循环、条件、switch、数组和切片
1.变量 package main import "fmt" func main() { 个或者多个变量. var a string = "initial" f ...
- c语言的变量,常量及作用域等
1.const定义常量 在C语言中,const可以用来定义的一个常量,在变量名前加上const即可. int const a: 定义了一个a的整数常量,且a的值不能被修改.如果要修改a的值,有以下两种 ...
- C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
- C语言入门教程-(4)常量和变量
1.常量和变量的概念 程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量.常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错. 2.常量和变量的命名规范 在介绍常量和 ...
- Java学习笔记三:Java的变量、常量、变量的类型及使用规则
Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...
- Go语言基础之1--标识符、关键字、变量和常量、数据类型、Go的基本程序结构、Golang的特性
一.前言 当我们项目较为简单时,我们在src目录下新建一个该项目目录,里面存放源码文件即可,见下图: 当我们一个项目较为复杂时,我们可以在src目录下新建一个该项目目录,在针对该项目不同模块创建不同目 ...
- Java第三天【变量、常量、数据类型】
学习Java第三天!加油!请帖友看看有和不足的地方,和在下说一下,谢谢! 变量 变量(variable): 1.变量的本质就是代表"可操作的存储空间",空间位置是确定的,蛋里面放置 ...
随机推荐
- IDEA设置注释模板
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- 一、Smarty安装与调试
一.安装注:这里所使用的Smarty是3.x版本,要求PHP版本为5.2或者更高.解压下载下来的Smarty压缩文件,将文件夹libs拷到项目中,在项目中引入libs文件夹中的"Smarty ...
- JavaScript_AMD规范
JavaScript_AMD规范 一.总结 一句话总结: Asynchronous Module Definition:AMD是"Asynchronous Module Definition ...
- spark 笔记 1: 如何着手
必读:从官方的开发者页面着手,包括如何构建spark以及编码规范(强烈建议读读编程规范)等:https://cwiki.apache.org/confluence/display/SPARK/Cont ...
- jenkins部署java项目
#########################################jenkins部署#################################3 一.jenkins是什么? J ...
- oracle数据库连接数反推公式
sessions=1.1*processes+5,transactions=1.1*sessions.
- 方差分析(python代码实现)
python机器学习-乳腺癌细胞挖掘(欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章) https://study.163.com/course/introduction ...
- 在K8S上跑一个helloworld
建立docker镜像 为了方便起见,这里直接使用一个js网页作为应用,以此创建镜像 hello world网页 创建server.js,输入以下代码创建helloworld网页: var http = ...
- Typography 字体
Typography 字体 我们对字体进行统一规范,力求在各个操作系统下都有最佳展示效果. ¶中文字体 和畅惠风 PingFang SC 和畅惠风 Hiragino Sans GB 和畅惠风 Micr ...
- 【MAC】图片编辑工具-合成图片
MAC中和wIn环境中画图一样的工具,可以对图片进行编辑 step1: step2: step3: 从工具栏中选择你要使用的工具,进行对应的操作. step4: 合成图片: 效果如图: