golang变量
一、变量的概念
变量是程序的基本组成单位。变量表示内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)。
变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门 牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量 (值)。
变量的使用步骤:
1、声明变量(也叫:定义变量)
2、给变量赋值
3、用变量
package main import "fmt" func main() {
//定义变量,也就是声明变量
var i int
//给变量赋值
i = 10
//使用变量
fmt.Println("i=", i)
}
二、golang变量的三种使用方式
1、指定变量类型,声明后若不赋值,使用默认值
package main import "fmt" func main() {
//指定变量类型,声明后若不赋值,使用默认值
//int的默认值是0
var i int
fmt.Println("i=", i)
}
2、根据值自行判定变量类型(类型推导)
package main import "fmt" func main() {
//根据值自行判定变量类型(类型推导)
var num = 10.05
fmt.Println("num=", num)
}
3、省略 var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
package main import "fmt" func main() {
//省略 var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
name := "tom" //等价于 var name string name = "tom"
fmt.Println("name=", name)
}
三、变量的声明
1、多变量声明
package main import "fmt" func main() {
//一次性声明多个变量
var n1, n2, n3 int
fmt.Println("n1=", n1, "n2=", n2, "n3=", n3) var num, name, n4 = 100, "tom", 888
fmt.Println("num=", num, "name=", name, "n4=", n4) n5, name2, n6 := 100, "lina", 666
fmt.Println("n5=", n5, "name2=", name2, "n6=", n6)
}
2、全局变量
package main import "fmt" //一次性声明多个全局变量[在go中函数外部定义变量就是全局变量]
//定义全局变量方式一:
var n1 = 100
var n2 = 200
var name = "jack" //定义全局变量方式二:
var (
n3 = 300
n4 = 900
name2 = "mary"
) func main() {
fmt.Println("n1=", n1, "n2=", n2, "n3=", n3, "n4=", n4, "name=", name, "name2=", name2)
}
一个区域的变量数值可以在同一类型范围内不断变化(重点)
变量在同一个作用域(在一个函数或者在代码块)内不能重名
变量=变量名+值+数据类型
Golang 的变量如果没有赋初值,编译器会使用默认值, int默认为0,string默认值为空串,小数默认为0
golang变量的更多相关文章
- golang变量作用域问题-避免使用全局变量
最近遇到了一个变量作用域的问题,一个比较低级的问题,可能作为一个熟手不应该犯这样的低级错误,但是golang的语法特点可能让你稍微不注意就踩坑,嘿嘿. 变量作用域 全局变量的作用域是整个包,局部变量的 ...
- golang变量声明
func main() { var a1 int a1 = 1 var a = 1 b := 1 var c, d int c = 1 d = 1 var e, f = 1, 2 g, h := 1, ...
- 一个有关Golang变量作用域的坑
转自:http://tonybai.com/2015/01/13/a-hole-about-variable-scope-in-golang/ 临近下班前编写和调试一段Golang代码,但运行结果始终 ...
- golang变量与常量
变量 变量 在程序运行中可以改变的量 枚举 var ( a3 = 1 a4 = 2 ) golang不同类型变量不能替换 func main() { var a int = 10 a = 20 a = ...
- GOLANG 变量
语法格式 var 变量名 类型 类型: 可以是go语言内置的各种基本数据类型.复合数据类型,甚至是函数.方法.接口以及自定义类型. 声明变量会给变量设定零值.数值类型变量 ...
- golang 变量定义
package main import "fmt" var luckyNum = 6 var luckyStr = "love" //myNum := 6 // ...
- golang变量的注意
方法内部的变量使用方法: /* 定义三个变量,它们分别初始化为相应的值 vname1为v1,vname2为v2,vname3为v3 编译器会根据初始化的值自动推导出相应的类型 */ vname1, v ...
- golang变量-数据类型一
package main import "fmt" var t1 = 100 var t2 = 200 var t3 = 300 var ( u1 = 100 u2 = 200 u ...
- [golang note] 变量常量
变量 • 变量声明 √ golang变量声明的关键字为var. √ golang变量声明时类型信息放置在变量名之后. ▶ 单个变量声明 ▪ 语法如下 var name type ▪ 示例如下 var ...
随机推荐
- ZROI2018普转提day7t1
传送门 分析 一道有意思的小题... 我们发现如果$(1,1)$为白色,则将其变为白色需要偶数次操作,而如果为黑色则需要奇数次操作 我们知道要让A赢需要奇数次操作,所以我们只需要判断$(1,1)$的颜 ...
- Luogu 3530 [POI2012]FES-Festival
我是真的不会写差分约束啊呜呜呜…… BZOJ 2788被权限了. 首先对于第一个限制$x + 1 = y$,可以转化成$x + 1 \leq y \leq x + 1$, 所以连一条$(y, x, - ...
- Servlet HTTP 状态码 以及 获得浏览器URL
Servlet HTTP 状态码 HTTP 请求和 HTTP 响应消息的格式是类似的,结构如下: 初始状态行 + 回车换行符(回车+换行) 零个或多个标题行+回车换行符 一个空白行,即回车换行符 一个 ...
- netty源码阅读之UnpooledByteBufAllocator
使用IDEA阅读源码Navigate下面的工具是个好东西 .可以帮助分析类的结构等 ByteBufAllocator主要用来生成三种ByteBuf :HeadBuffer,DirectBuffer,C ...
- javaSE阶段中 关于Sring类方法的应用
String类中有很多常用的方法,今天就一些方法涉及到的一些常见题 做两个小Demo 其中一个要求如下: 获取指定字符串中,大写字母.小写字母.数字 的个数 题目分析 * 为了统计大写字母.小写字 ...
- WebGoat系列实验Authentication Flaws
WebGoat系列实验Authentication Flaws Forgot Password Web应用经常给用户提供取回密码的功能,但是许多应用的实现策略实现的很差,用于验证用户的信息非常简单. ...
- 使用JMeter的Java Sampler轻松定制自己的benchmark
做性能测试,接口测试,非常好 转自 http://www.iteye.com/topic/1123432 以前碰到更多的是WEB APP的性能测试,也许用得最多的是Loadrunner, Web S ...
- 关于CRTP(Curiously Recurring Template Prattern)的使用
在阅读frameworks/rs/cpp/util/RefBase.h之LightRefBase时,我记得<C++设计新思维>里对这种用法是有过介绍的,可是今天翻箱倒柜,怎么都找不到那本奇 ...
- 安卓--ListView
实验目的: 学习使用ListView 实验要求: 实现一个列表,其中显示班级学号姓名,提供添加功能,如需要删去某一项,长按该项,通过弹出菜单显示删除功能. package com.flyuz.app3 ...
- P1979 华容道
题意:$n*m$棋盘上$n*m-1$颗棋子,有且只有一个格子为空白格子,每个棋子大小$1*1$ 有些棋子可以移动,而有些棋子固定,任何与空白的格子相邻(有公共的边)的格子上的棋子都可以移动到空白格子上 ...