当前位置: 首页 > news >正文

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&#xff09…...

方法区和元空间有什么关系?

一.什么是方法区? 方法区属于是 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的概述 表格布局是以行数和列数来确定位置进行排列。就像一间教室&#xff0c;确定好行数与列数就能让同学有序入座。 注意&#xff1a;我们需要先添加<TableRow容器&#xff0c;每添加一个就会多一行&#xff0c;然后再往<TableRow容器中添加其它组件。…...

SQL代码编码原则和规范

目录1、先了解MySQL的执行过程2、数据库常见规范3、所有表必须使用Innodb存储引擎4、每个Innodb表必须有个主键5、数据库和表的字符集统一使用UTF86、查询SQL尽量不要使用select *&#xff0c;而是具体字段7、避免在where子句中使用 or 来连接条件8、尽量使用数值替代字符串类型…...

【博客627】gobgp服务无损变更:graceful restart特性

gobgp服务无损变更&#xff1a;graceful restart特性 场景 当我们的bgp网关在对外宣告bgp路由的时候&#xff0c;如果我们网关有新的特性要发布&#xff0c;那么此时如果把网关停止再启动新版本&#xff0c;此时bgp路由会有短暂撤回再播出的过程&#xff0c;会有网络抖动 期待…...

一起学 pixijs(1):常见图形的绘制

大家好&#xff0c;我是前端西瓜哥。 pixijs 是一个强大的 Web Canvas 2D 库&#xff0c;以其强大性能而著称。其底层使用了 WebGL 实现了硬件加速&#xff0c;当然如果不支持的话&#xff0c;也能回退为 Canvas。 本文使用的 pixijs 版本为 7.1.2。 Application Applicati…...

2023年PMP考试教材有哪些?(含pmp资料)

PMP考试教材是《PMBOK指南》&#xff0c;但这次的考试因为大纲的更新&#xff0c;而需要另外的敏捷书籍来备考。且官方发了通知&#xff0c;3、5月还是第六版指南&#xff0c;8月及8月之后&#xff0c;使用第七版教材。 新版考纲将专注于以下三个新领域: 人 – 强调与有效领导项…...

centos7防火墙工具firewall-cmd使用

centos7防火墙工具firewall-cmd使用防火墙概述centos7防火墙工具firewall-cmd使用介绍firewalld的基本使用服务管理工具相关指令配置firewalld-cmd防火墙概述 防火墙是可以帮助计算机在内部网络和外部网络之间构建一道相对隔绝的保护屏障&#xff0c;从而保护数据信息的一种技…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...