学习go语言编程系列之定义变量
package main
import (
"fmt"
"math"
)
func main() {
// 1. 定义变量名age,不初始化,使用对应类型的默认值
var age int
fmt.Println("My age is", age)
// 2. 给变量赋值
age = 29
fmt.Println("My age is", age)
age = 50
fmt.Println("My age is", age)
// 3. 定义变量时初始化值
var height int = 160
fmt.Println("My height is", height)
// 4. 变量类型推断: 定义变量时不用明确指定变量类型,而是根据初始化值推断变量类型
var weight = 130
fmt.Println("My weight is", weight)
// 5. 可以同时定义多个变量值
// 同时定义多个变量并初始化值
var myage, myheight int = 29, 160
fmt.Println("My age is", myage, ", and my height is", myheight)
// 5.1 如果在同时定义多个变量时初始化值,可以不用明确指定变量类型,根据变量值推断变量类型
var hisage, hisheight = 29, 170
fmt.Println("His age is", hisage, ", and his height is", hisheight)
// 5.2. 当然,也可以同时在定义变量之后再进行赋值
var herage, herheight int
herage = 30
herheight = 170
fmt.Println("Her age is", herage, ", and her height is", herheight)
// 5.3. 另外,可以同时定义多个变量值,并赋不同类型的值
var (
name_ = "cccc"
age_ = 29
height_ int
)
fmt.Println("name_ is", name_, ", age_ is", age_, ", height_ is", height_)
// 6. go语言还提供了一种简洁的变量定义方式,通过操作符":="实现
// 在这种方式下,定义变量时不能使用var符号: 要求,必须同时对所有定义变量赋值, 否则报错
_name, _age := "dddd", 31
fmt.Println("_name is", _name, ",_age is", _age)
// 如下定义报错:未同时对定义的多个变量赋值
__name, __age := "eeeee"
fmt.Println("__name is", __name, ", __age is", __age)
// 另外,在这种方式下,操作符":="左边的变量:要求至少有一个是最新定义的
i, j := 10, 11
fmt.Println("i=", i, ",j=", j)
j, k := 12, 13 // 操作符左边的k变量是最新声明的,满足"至少有一个变量时新定义的"条件
fmt.Println("j=", j, ",k=", k)
j, k := 14, 15 // 操作符左边的变量都是已经定义过的,不满足"至少有一个变量时新定义的"条件,运行时报错
fmt.Println("j=", j, ",k=", k)
// 7. 变量初始化值还可以是表达式值
a, b := 10.0, 11.1
c := math.Min(a, b)
fmt.Println("a=", a, ", b=", b, ", and c=", c)
// 8. 变量一但被赋值,类型就确定了,不能再赋值其他类型的值
ok := 20
fmt.Println("ok is", ok)
ok = "Hello" // 变量ok的类型一旦赋值之后就确定,不能再赋值其他类型的值了
fmt.Println("学习GO语言变量定义完毕!")
}
学习go语言编程系列之定义变量的更多相关文章
- 学习go语言编程系列之helloworld
1. 下载https://golang.org/dl/ # Go语言官网地址,在国内下载太慢,甚至都无法访问.通过如下地址下载:https://golangtc.com/download. 2. 安装 ...
- 如何轻松学习C语言编程!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- 珍藏的C语言编程系列教程
本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...
- case中定义变量
1.c语言switch/case中定义变量 case 0: int b = 0 ; printf("0");break; case 1: printf("1" ...
- fatal error LNK1169: 找到一个或多个多重定义的符号或多个.c/.cpp文件想同时调用定义在.h文件里面的全局变量,防止重定义变量问题。
为什么.h文件中不能定义全局变量? 原因: 存在多次创建变量.如果头文件中可以定义全局变量,那么每个包含该头文件的文件里都会有该全局变量的定义.因为C语言的include是直接将文件嵌入到includ ...
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
C#中的函数式编程:递归与纯函数(二) 在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...
- 学习ASP.NET Core Razor 编程系列九——增加查询功能
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- ES6学习笔记(一)新的变量定义命令let和const
1.一些历史 ES6(ECMAScript 6.0)是 JavaScript 语言的新一代标准,于2015 年 6 月正式发布,距今已经4年了,它的目标,是使得 JavaScript 语言可以用来编写 ...
随机推荐
- SCOI2016 Day1 简要题解
目录 「SCOI2016」背单词 题意 题解 代码 「SCOI2016」幸运数字 题意 题解 总结 代码 「SCOI2016」萌萌哒 题意 题解 总结 代码 「SCOI2016」背单词 题意 这出题人 ...
- JXOI 2018 简要题解
目录 「JXOI2018」游戏 题意 题解 代码 「JXOI2018」守卫 题意 题解 代码 「JXOI2018」排序问题 题意 题解 代码 总结 「JXOI2018」游戏 题意 可怜公司有 \(n\ ...
- Codeforces 1045. A. Last chance(网络流 + 线段树优化建边)
题意 给你 \(n\) 个武器,\(m\) 个敌人,问你最多消灭多少个敌人,并输出方案. 总共有三种武器. SQL 火箭 - 能消灭给你集合中的一个敌人 \(\sum |S| \le 100000\) ...
- 《App后台开发运维与架构实践》第2章 App后台基础技术
2.1 從App業務邏輯中提煉API接口 業務邏輯思維導圖 功能-業務邏輯思維導圖 基本功能模塊關系 功能模塊接口UML(設計出API) 在設計稿標注API 編寫API文檔 2.2 設計API的要點 ...
- CF983A Finite or not?(数学)
题意:给出分母,分子和进制,要求判断该数是否为有限小数. Solution 表示并不知道怎么判断. 度娘:“一个分数在最简分数的情况下,如果它的分母只含有2和5两个质因数,这个分数就能化成有限小数.” ...
- 牛客网Wannafly挑战赛25A 因子(数论 素因子分解)
链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- linux ./configure check your system clock
checking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sa ...
- poj2083 Fractal
我一开始的想法是间断性的输出空格和solve(k-1) 但是发现问题很大. 雨菲:可以用一个数组保存啊 我:那不爆了? 雨菲:不会爆. 我一算:729 × 729,还真没爆. 然后就直接WA了.... ...
- io系列之其他事项
二.对IO异常的处理. io操作中,只要涉及到底层操作的就必须进行 io异常处理. IOException 是IO操作中必须处理的异常. 示例: class IOExceptionTest { pub ...
- Codeforces Gym 191033 E. Explosion Exploit (记忆化搜索+状压)
E. Explosion Exploit time limit per test 2.0 s memory limit per test 256 MB input standard input out ...