Go基础-变量
文章目录
- 1 Go中的变量
- 2 声明一个变量
- 3 声明变量并初始化
- 4 变量推断
- 5 声明多个变量
- 5.1 多个变量相同类型
- 5.2 多个变量不同类型
- 6 简短声明
- 7 Go语言变量不能把一种类型赋值给其他类型
1 Go中的变量
Go中变量指定了某存储单元的名称,该存储单元会存储特定类型的值,在Go中,有多种语法用于声明变量。
2 声明一个变量
语法
//关键字 变量名 变量类型
var name type
测试
package mainimport "fmt"func main() {var age int // 定义一个int类型的变量age = 12 // 变量赋值var name string // 定义一个string类型的变量name = "张三" // 变量赋值fmt.Println("姓名:", name, "年龄:", age) // 姓名: 张三 年龄: 12
}
如果变量声明后没有进行初始化,Go会默认将其赋值为0
package mainimport "fmt"func main() {//var age int//age = 12//var name string//name = "张三"//fmt.Println("姓名:", name, "年龄:", age) // 姓名: 张三 年龄: 12var count intfmt.Println(count) // 0var str stringfmt.Println(str) // 空var avg float32fmt.Println(avg) // 0
}
3 声明变量并初始化
语法
//关键字 变量名 变量类型 = 初始化值
var name type = value
测试
package mainimport "fmt"func main() {// 声明变量并初始化var age int = 10fmt.Println(age)// 修改变量值age = 11fmt.Println("我长大了:", age)
}
4 变量推断
如果定义的变量有初始化值,则不用定义变量类型,Go会自动推断变量的类型
语法
// 关键字 变量名 = 初始化值
var age = 11
// 省略了age变量的类型int
测试
package mainimport "fmt"func main() {var age = 10fmt.Println("age is :", age) // age is : 10
}
5 声明多个变量
5.1 多个变量相同类型
语法
var a,b int // 声明变量
a = 1
b = 2
测试
package mainimport "fmt"func main() {var height, weigth intheight = 180weigth = 60fmt.Println("身高:", height, "cm", "体重:", weigth, "kg") // 身高: 180 cm 体重: 60 kg}
5.2 多个变量不同类型
语法
var (name1 type1name2 type2
)
测试
package mainimport "fmt"func main() {var (name stringage intheight float32weight float32)name = "张三丰"age = 104height = 175.8weight = 69.6fmt.Println("姓名:", name, "年龄:", age, "身高:", height, "体重:", weight)// 姓名: 张三丰 年龄: 104 身高: 175.8 体重: 69.6
}
6 简短声明
Go语言支持对未初始化的变量进行简短声明。
语法
// 变量名 := 初始化值
name := initialvalue
测试
package mainimport "fmt"func main() {age := 11fmt.Println("age is :", age) // age is : 11
}
:= 符号左边的值必须都有初始化值,否则报错
package mainimport "fmt"func main() {name, age := "张三丰" // 报错 assignment mismatch: 2 variables but 1 valuefmt.Println("name is :", name)
}
:= 符号左边的变量个数与右边的初始化值的个数一定要相同
package mainimport "fmt"func main() {name, age := "张三丰", 11fmt.Println("name is :", name, "age is :", age) // name is : 张三丰 age is : 11
}
简短声明:=左侧必须包含一个未初始化的变量
package mainimport "fmt"func main() {var a = 10a, b := 11, 12 // 因为b是未初始化的,所以不报错fmt.Println(a, b) // 11,12
}
如果简短声明:=左侧都是初始化的,则会报错
package mainimport "fmt"func main() {var a, b = 10, 11a, b := 11, 12 // no new variables on left side of :=fmt.Println(a, b)
}
go给出的报错信息还是很清晰的
7 Go语言变量不能把一种类型赋值给其他类型
Go是强类型语言,不能将类型a的变量赋值为类型b的值
package mainimport "fmt"func main() {a, b := 11, 12a = "kevin" // cannot use "kevin" (untyped string constant) as int value in assignmentfmt.Println(a, b)
}
相关文章:
Go基础-变量
文章目录1 Go中的变量2 声明一个变量3 声明变量并初始化4 变量推断5 声明多个变量5.1 多个变量相同类型5.2 多个变量不同类型6 简短声明7 Go语言变量不能把一种类型赋值给其他类型1 Go中的变量 Go中变量指定了某存储单元的名称,该存储单元会存储特定类型的值&#…...
【算法】三道算法题目单词拆分,填充每个节点的下一个右侧节点指针以及组合总和
算法第一道算法题:单词拆分java解答参考第二道算法题:填充每个节点的下一个右侧节点指针java 解答参考第三道算法题:组合总和java解答参考大家好,我是小冷。 今天还是继续学习算法技术知识吧 第一道算法题:单词拆分 …...
【算法】刷题路线(系统+全面)
本系列基于当前各大公司对大公司的考察情况,给大家规划一条可行的算法刷题路线,大概会规划 200 道自认为有用的题,并且争取让初学者,能够刷起来更加丝滑,而且每个阶段都会进行相对应的说明。 当然,无论是面…...
Fiddler的报文分析
目录 1.Statistics请求性能数据 2.检测器(Inspectors) 3.自定义响应(AutoResponder) 1.Statistics请求性能数据 报文分析: Request Count: 1 请求数,该session总共发的请求数 Bytes …...
Spring 中,有两个 id 相同的 bean,会报错吗
我们知道,spring容器里面的bean默认是单例的,所以id是唯一的。但是需要注意,同一类型的bean可以有不同的id,比如有id1->bean,也可以有id2->bean。 下面再来详细回答一下文章的问题。 首先,在同一个…...
Mysql数据库的时间(4)一查询数据库时间注意点
一.select根据时间段查询 1.原始的sql根据时间段查询 select * from stu where time between "1998-09-01" and "1999-09-01"; //查询从1998-09-01到1999-09-01时间段的数据 等同于select * from stu where time >"1998-09-01" and time &l…...
一起学 pixijs(2):修改图形属性
大家好,我是前端西瓜哥。 我们做动画、游戏、编辑器,需要根据用户的交互等操作,去实时地改变图形的属性,比如位置,颜色等信息。今天西瓜哥带大家来看看在 pixijs 怎么修改图形的属性。 因为 pixijs 的底层维护了图形…...
LeetCode 121. 买卖股票的最佳时机
原题链接 难度:easy\color{Green}{easy}easy 题目描述 给定一个数组 pricespricesprices ,它的第 iii 个元素 prices[i]prices[i]prices[i] 表示一支给定股票第 iii 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同…...
shell脚本内调用另外一个shell脚本的几种方法
有时会在一个shell脚本(如test_call_other_shell.sh)中调用另外一个shell脚本(如parameter_usage.sh),这里总结几种可行的方法,这些方法在linux上和windows上(通过Git Bash)均适用: 1.通过source: 运行在相同的进程,在test_…...
Linux C++ 多进程下write写日志问题思考
文章目录多个进程(父子)同时通过write像日志文件中写,是否会出现数据混乱情况?需要满足以下条件: 1、通过open打开文件,子进程都是复制父进程的文件描述符去操作这个文件,不会造成文件混乱&…...
MySQL的四种事务隔离级别
目录一、事务的基本要素(ACID)1、原子性(Atomicity):2、一致性(Consistency):3、隔离性(Isolation):4、持久性(Durability)…...
方法区和元空间有什么关系?
一.什么是方法区? 方法区属于是 JVM 运行时数据区域的一块逻辑区域,是各个线程共享的内存区域。 《Java 虚拟机规范》只是规定了有方法区这么个概念和它的作用,方法区到底要如何实现那就是虚拟机自己要考虑的事情了。也就是说,在…...
2023VNCTF的两道(暂时)
from http://v2ish1yan.top/2023/02/19/%E6%AF%94%E8%B5%9Bwp/2023vnctf/ 比赛的时候在回学校的路上,所以没有打,听说质量挺高,赛后做一下 象棋王子 一个普通的js游戏,玩过关了就给flag,所以flag肯定在前端源码里 这…...
JDK版本区别
1. 泛型 ArrayList listnew ArrayList()------>ArrayList<Integer>listnew ArrayList<Integer>(); 2 自动装箱/拆箱 nt ilist.get(0).parseInt();-------->int ilist.get(0);原始类型与对应的包装类不用显式转换 3 for-each i0;i<a.length;i------------&…...
Android 基础知识4-2.8 TableLayout(表格布局)详解
一、TableLayout的概述 表格布局是以行数和列数来确定位置进行排列。就像一间教室,确定好行数与列数就能让同学有序入座。 注意:我们需要先添加<TableRow容器,每添加一个就会多一行,然后再往<TableRow容器中添加其它组件。…...
SQL代码编码原则和规范
目录1、先了解MySQL的执行过程2、数据库常见规范3、所有表必须使用Innodb存储引擎4、每个Innodb表必须有个主键5、数据库和表的字符集统一使用UTF86、查询SQL尽量不要使用select *,而是具体字段7、避免在where子句中使用 or 来连接条件8、尽量使用数值替代字符串类型…...
【博客627】gobgp服务无损变更:graceful restart特性
gobgp服务无损变更:graceful restart特性 场景 当我们的bgp网关在对外宣告bgp路由的时候,如果我们网关有新的特性要发布,那么此时如果把网关停止再启动新版本,此时bgp路由会有短暂撤回再播出的过程,会有网络抖动 期待…...
一起学 pixijs(1):常见图形的绘制
大家好,我是前端西瓜哥。 pixijs 是一个强大的 Web Canvas 2D 库,以其强大性能而著称。其底层使用了 WebGL 实现了硬件加速,当然如果不支持的话,也能回退为 Canvas。 本文使用的 pixijs 版本为 7.1.2。 Application Applicati…...
2023年PMP考试教材有哪些?(含pmp资料)
PMP考试教材是《PMBOK指南》,但这次的考试因为大纲的更新,而需要另外的敏捷书籍来备考。且官方发了通知,3、5月还是第六版指南,8月及8月之后,使用第七版教材。 新版考纲将专注于以下三个新领域: 人 – 强调与有效领导项…...
centos7防火墙工具firewall-cmd使用
centos7防火墙工具firewall-cmd使用防火墙概述centos7防火墙工具firewall-cmd使用介绍firewalld的基本使用服务管理工具相关指令配置firewalld-cmd防火墙概述 防火墙是可以帮助计算机在内部网络和外部网络之间构建一道相对隔绝的保护屏障,从而保护数据信息的一种技…...
MCP密钥安全管理的无侵入解决方案:mcp-safe-run工具详解
1. 项目概述:告别硬编码,拥抱安全的MCP密钥管理如果你和我一样,日常开发中深度依赖Claude、Cursor、Windsurf这类智能编码助手,那你肯定对Model Context Protocol(MCP)不陌生。MCP作为连接AI模型与外部工具…...
ClawGuard:为Clawdbot AI智能体打造的安全监控与熔断防护系统
1. 项目概述:ClawGuard 是什么,以及为什么你需要它如果你正在使用或开发基于 Clawdbot 框架的 AI 智能体,那么“安全”和“可控”这两个词,大概率已经在你脑海里盘旋过无数次了。我接触过不少团队,从最初的兴奋于 AI 智…...
AI Agent 的难点,不在搭 Demo,而在让人敢交任务
Agent难在让人敢托付 很多团队做 Agent 的误会,是把跑通一次当成好用。 现在搭一个 Demo 确实不难。一个大模型,几段提示词,接几个搜索、表格、浏览器或数据库工具,很快就能演示一个会拆任务、会调用工具、会输出结果的流程。看起…...
条件生成对抗网络实现可控人脸老化建模
1. 项目概述:用条件生成对抗网络实现可控的人脸老化模拟“Face Aging Using Conditional GANs”——这个标题一出现,我就知道它不是那种调个预训练模型跑个demo的轻量级练习。它直指一个在计算机视觉与人机交互交叉领域里既经典又棘手的问题:…...
金融机器学习实战:MlFinLab工具包核心模块解析与应用指南
1. 从零到一:为什么我们需要一个金融机器学习的“瑞士军刀”?如果你和我一样,在量化金融和算法交易这条路上摸爬滚打了好几年,那你一定经历过这样的场景:为了复现一篇顶级期刊论文里的某个特征工程方法,你需…...
揭秘AI教材生成秘诀!AI教材写作工具助力,低查重完成20万字教材!
教材编写难题与AI工具解决方案 在编写教材时,如何才能精准满足不同的需求呢?不同学段的学生在认知能力上存在显著差异,内容过于复杂或简单都不合适;而在课堂教学和自主学习等不同场景下,对教材的要求又各不相同&#…...
计算机视觉十年演进:从手工特征到工业落地实战
1. 计算机视觉的十年跃迁:从手工特征到端到端理解2012年,AlexNet在ImageNet大赛上以15.3%的错误率碾压第二名10.8个百分点,整个计算机视觉领域像被按下了快进键。那会儿我在实验室调试SIFT特征匹配,光是调一个尺度参数就要跑三小时…...
从DEM到glTF:打造跨平台三维地形模型的完整工作流
1. 为什么需要从DEM到glTF的三维地形工作流 三维地形模型在游戏开发、虚拟现实、城市规划等领域有着广泛应用。传统的工作流程往往存在平台兼容性差、数据转换复杂等问题。glTF作为"3D界的JPEG",已经成为跨平台三维模型交换的事实标准。将数字高程模型&am…...
Windows 10/11下MySQL 8.0.28安装失败?‘服务没有响应控制功能’报错保姆级修复指南
Windows平台MySQL安装报错终极解决方案:从"服务无响应"到完美运行 遇到MySQL安装过程中弹出"服务没有响应控制功能"的红色报错窗口时,很多开发者第一反应是重装系统或更换数据库——别急!这个看似复杂的错误其实90%以上源…...
基于LLM与RAG的法律AI工具:从架构解析到工程实践
1. 项目概述:一个法律文本智能生成与分析的AI工具最近在和一些做法律科技的朋友聊天时,他们反复提到一个痛点:处理海量的、格式固定的法律文书,比如起诉状、合同、律师函,既耗时又容易在细节上出错。人工起草一份严谨的…...
