go基础——变量与常量
变量
package main
import "fmt"
/*
变量:variable
概念:一小块内存,用于存储数据,在程序运行过程中数值可以改变
特性:静态语言,强类型语言
*/
func main() {
//使用:
//一、变量的声明,也叫定义
//第一种:定义变量,然后进行赋值
var num1 int //var 变量名 数据类型
num1 = 30 //变量名 = 赋值
//写在一行
var num2 int = 15 //var 变量名 数据类型 = 赋值
fmt.Printf("num1的数值是:%d\n", num1)
fmt.Printf("num2的数值是:%d\n", num2)
//第二种:类型推断,省略数据类型
var name = "小李" //var 变量名 = 赋值
fmt.Printf("类型是:%T,数值是:%s\n", name, name)
//第三种:简短定义,也叫简短声明,省略var
sum := 100 //变量名 := 赋值
fmt.Println(sum)
//多个变量同时定义
var a, b, c int
a = 1
b = 2
c = 3
fmt.Println(a, b, c)
var m, n int = 4, 5
fmt.Println(m, n)
var (
sname = "小张"
age = 18
sex = "男"
)
fmt.Printf("姓名:%s,年龄:%d,性别:%s\n", sname, age, sex)
//二、变量的访问,赋值和取值
/*
注意点:
1.变量必须先定义才能使用
2.变量的类型和赋值必须一致
3.同一个作用域内,变量名不能冲突
4.简短定义的方式,左边的变量至少有一个是新的
5.简短定义不能定义全局变量
*/
var num int
num = 100
fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
num = 200
fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
//6.变量的零值,也叫默认值。
var s1 int //0
var s2 float64 //0.0,简写成0
var s3 string //""
var s4 []int //nil
fmt.Println(s1, s2, s3)
fmt.Println(s4 == nil)
//7.变量定义了就要使用
}
num1的数值是:30
num2的数值是:15
类型是:string,数值是:小李
100
1 2 3
4 5
姓名:小张,年龄:18,性别:男
num的数值是:100,地址是:0xc0000ac098
num的数值是:200,地址是:0xc0000ac098
0 0
true
常量
package main
import "fmt"
/*
常量:
1.概念:同变量类似,程序执行过程种数值不能改变
2.语法:
显式类型定义
隐式类型定义
3.常数:
固定的数值:100,"abc"
*/
func main() {
//使用:
//1.定义常量
const PATH string = "baidu.com"
const PI = 3.14
//2.定义一组常量
const C1, C2, C3 = 100, 3.14, "hello"
const (
MALE = 0
FEMALE = 1
UNKNOW = 3
)
//3.一组常量中,如果某个常量没有初始值,默认和上一行一致
const (
a int = 100
b
)
fmt.Printf("%T,%d\n", a, a)
fmt.Printf("%T,%d\n", b, b)
//4.枚举类型:使用常量组作为枚举类型,一组相关数值的数据
const (
SPRING = 0
SUMMER = 1
AUTUMN = 2
WINTER = 3
)
//注意事项:
//常量中的数据类型只可以是布尔型、数字型(整数、浮点、复数)和字符串型。
//不曾使用的常量,编译不会报错。
//赋值与常量类型必须一致。
}
int,100
int,100
iota
package main
import "fmt"
/*
iota:特殊常量,可以认为是一个可以被编译器修改的常量。
每当定义一个const,iota的初始值为0;
每当定义一个常量,就会自动累加1;
直到下一个const出现,清零
*/
func main() {
const (
a = iota //0
b = iota //1
c = iota //2
)
const (
d = iota //0
e //1
)
fmt.Println(a, b, c)
fmt.Println(d, e)
const (
A = iota //0
B = "haha" //iota=1
C //C="haha",iota=2
D = iota //3
E //4
)
fmt.Println(A, B, C, D, E)
}
0 1 2
0 1
0 haha haha 3 4
go基础——变量与常量的更多相关文章
- [.net 面向对象编程基础] (5) 基础中的基础——变量和常量
[.net面向对象编程基础] (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...
- JAVA基础——变量和常量
JAVA的变量和常量知识总结 一.认识java标识符 标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 使用标识符时,需要遵守几条规则: 1. 标识符可以由字母.数字.下划线(_).美 ...
- 003-python基础-变量与常量
一.变量的定义 变量就是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标示符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值. 二.变量的声明 #!/u ...
- JavaScript -基础- 变量、常量
一.变量 <script> var a=1 var b=3 var a= 1; //使用var 定义变量,分号结尾(可不加,换行符也可) var b=3; var a= 1; var ...
- JAVA基础——变量、常量
变量 java中,变量时最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类型可以是基本类型,也可以是引用类型. 变量名必须是合法的标识符 变量声明时一条完整的语句 ...
- Java基础——变量与常量及命名规范
变量 () public class Demon04{ //类变量 static static double salary=2500; //属性: 变量 //实例 ...
- go 基础 变量和常量
package main import "fmt" //全局变量,赋值 var( PI float32 = 3.1415 Count ) //全局变量,无值 var( x stri ...
- Oracle基础 PL-SQL编程基础(1) 变量和常量
一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的一种扩展语言.具体来说,PL-SQL就是在普通的SQL语句的基础上增加了编程语言的特点,将数据操作和查询语句 ...
- javascript 概述及基础知识点(变量,常量,运算符,数据类型)
JavaScript概述 1.1 什么是JavaScript: javaScript(简称js),是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语 ...
随机推荐
- 关于C#的decimal浮点类型转化成字符串时末尾存在多个0
首先,对于浮点类型,double和float存在精度丢失问题,这一点在之前的一篇博文中有提到(C# double类型精度丢失问题),于是,一般时候推荐大家使用decmal,特别是涉及到一些金融计算时, ...
- golang 算法题 : 两数相加
package mainimport "fmt"type ListNode struct { Val int Next *ListNode}func main() { l1 := ...
- vue - 搭建 webapp 自适应项目-使用 vant 组件库 并 可自动调节大小
1.创建个vue 项目,这里不详细写怎么创建,参考 vue - 指令创建 vue工程 - 岑惜 - 博客园 (cnblogs.com) https://www.cnblogs.com/c2g52013 ...
- Linux下校验SHA1和MD5的方法
当我们从互联网下载东西或者从U盘拷贝东西的时候,通常是不会和源文件有什么区别的,但是在偶然的情况下会出现下载或者拷贝出错的情况, 尤其是在下载大文件的时候,比如系统光盘......当你装机到一半才发现 ...
- YBT 1633:【例 3】Sumdiv
http://ybt.ssoier.cn:8088/problem_show.php?pid=1633 A^B 快速幂求结果,所有约数和,可以通过组合来进行得到. 技巧,通过递归得到1~n次的和.su ...
- java集合【13】——— Stack源码分析走一波
前言 集合源码分析系列:Java集合源码分析 前面已经把Vector,ArrayList,LinkedList分析完了,本来是想开始Map这一块,但是看了下面这个接口设计框架图:整个接口框架关系如下( ...
- [流畅的Python]第一章数据模型
这些来自同一家出版社的动物书 像是计算机科学界一盏盏指路明灯 余幼时 初试读 学浅 以为之晦涩难懂 像是老学究咬文嚼字 现在看起来还有些有趣 其实理工男大多都很有趣 这一章介绍了 怎么样去视线一个带有 ...
- 大型站点TCP/IP协议优化
作为一个DAU上百万或千万的站点,不仅仅需要做好网站应用程序.数据库的优化,还应从TCP/IP协议层去进行相关的优化: 在我的工作中,曾使用到了以下的几种基本的优化方式: 增大最大连接数 在Linux ...
- Mysql的存储过程摘要
MySQL 5.0 版本开始支持存储过程. 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象. 存储过程是为了完成特定功能的SQL语句集,经编 ...
- linux高大上命令001
[ linux命令 sed ] sed是一个管道命令,可以分析standard input 而且sed可以将数据进行替换.删除.新增.选取的特定的功能 sed [-nefr] [动作] -n ...