Golang 局部变量、全局变量 声明

文章目录

  • 一、局部变量
  • 二、全局变量

一、局部变量

四种声明方式 + 多变量声明:

package mainimport "fmt"//局部变量声明
func main() {//方法一: 声明一个变量和数据类型,不初始化值;默认值为0;var lvA intfmt.Println("lvA = ", lvA)//方法二: 声明一个变量和数据类型,并且初始化值。var lvB int = 10fmt.Println("lvB = ", lvB)//方法三: 声明一个变量,不指定数据类型,但是初始化值;Golang 会自动推断设置这个变量的数据类型;var lvC = 20fmt.Println("lvC = ", lvC)//方法四: 省略 var 关键字, 省略类型指定,使用 := 直接声明变量和初始化值。(常用方法) (但不支持这样声明全局变量)lvD := 30fmt.Println("lvD = ", lvD)//多变量声明 方式一: 单行写法//可以先一次声明多个,然后再一次单个或多个赋值var lvE, lvF, lvG intlvE = 10lvF, lvG = 20, 30fmt.Println("lvE = ", lvE, " lvF = ", lvF, " lvG = ", lvG)//可以在声明多个变量的同时,初始化值var lvH, lvI, lvJ int = 40, 50, 60fmt.Println("lvH = ", lvH, " lvI = ", lvI, " lvJ = ", lvJ)//可以同时声明多个不同类型的变量,根据初始化值,自动推断类型var lvL, lvM, lvN = 70, 80, "多变量声明时,也可以自动类型推断时"fmt.Println("lvL = ", lvL, " lvM = ", lvM, " lvN = ", lvN)//多变量声明 方式二:多行写法var (//可以声明类型, 并初始化值 (多行时,必须要初始化值)lvO      int = 10lvP          = 20lvQ, lvR     = 30, "字符串lvR"//也可以这样只声明但是不初始化值//不过如果不初始化值,则必须指定类型,不然不知道这个变量的类型lvS int)lvS = 40fmt.Println("lvO = ", lvO, " lvP = ", lvP, " lvQ = ", lvQ, " lvR = ", lvR, " lvS = ", lvS)
}

image.png

二、全局变量

全局变量的声明和局部变量的声明方式一、二、三 相同;

但是不能使用局部变量声明方式四 (:=) 来声明全局变量。

package mainimport "fmt"//全局变量声明:和局部变量声明方法的一二三相同
var gvA int
var gvB int = 10
var gvC = 20//不能使用 := 来声明全局变量,编译会报错
// gvD := 30//全局变量的多个变量声明和局部变量一样
var gvL, gvM, gvN = 70, 80, "多变量声明时,也可以自动类型推断时"var (//可以声明类型, 并初始化值 (多行时,必须要初始化值)gvO      int = 10gvP          = 20gvQ, gvR     = 30, "字符串gvR"//也可以这样只声明但是不初始化值//不过如果不初始化值,则必须指定类型,不然不知道这个变量的类型gvS int
)func main() {fmt.Println("gvA = ", gvA)fmt.Println("gvB = ", gvB)fmt.Println("gvC = ", gvC)fmt.Println("gvL = ", gvL, " gvM = ", gvM, " gvN = ", gvN)gvS = 40fmt.Println("gvO = ", gvO, " gvP = ", gvP, " gvQ = ", gvQ, " gvR = ", gvR, " gvS = ", gvS)}

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MybatisPlus】LambdaQueryWrapper和QueryWapper的区别

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

电路基础之电容

电容器(Capacitor)是由两个导体电极之间夹着一个电介质而组成的元件。这两个电极可以是金属板、箔片、涂层等,而电介质则是放置在电极之间的绝缘材料。电容器的基本构成包括以下几个要素: 电极:电容器的电极是两个导体…

js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

一、根据数组对象中某一key值,合并相同key值的字段,到同一个数组对象中,组成新的数组 1.原数组: var array [{ id: 1, name: Alice },{ id: 2, name: Bob },{ id: 1, age: 25 },{ id: 3, name: Charlie, age: 30 } ];2.合并后数…

接口测试实战,Jmeter正则提取响应数据-详细整理,一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在测试时&#xf…

服务器安装JDK

三种方法 方法一: 方法二: 首先登录到Oracle官网下载JDK JDK上传到服务器中,记住文件上传的位置是在哪里(我放的位置在/www/java),然后看下面指示进行安装 方法三: 首先登录到Oracle官网下载…

基于STM32CUBEMX驱动TMOS模块STHS34PF80(1)----获取ID

基于STM32CUBEMX驱动TMOS模块STHS34PF80----1.获取ID 概述样品申请视频教程所有功能接口最小系统图生成STM32CUBEMX串口配置IIC配置IO口设置串口重定向 模块地址参考demoIIC写函数IIC读函数参考程序初始化获取ID主函数 概述 STHS34PF80 是一款非冷却、工厂校准的红外运动和存在…

端口输入的数据为什么要打拍?

一次作者在开发图像时候,对输入的图像没有打拍,直接输出给显示终端,时好时坏,或者图像颜色不正确,最终经过打拍解决了此问题。 //配置为16-Bit SDR ITU-R BT.656模式时pixel_data[23:16]为高阻。always (posedge pixe…

C#多线程开发详解

C#多线程开发详解 持续更新中。。。。。一、为什么要使用多线程开发1.提高性能2.响应性3.资源利用4.任务分解5.并行计算6.实时处理 二、多线程开发缺点1.竞态条件2.死锁和饥饿3.调试复杂性4.上下文切换开销5.线程安全性 三、多线程开发涉及的相关概念常用概念(1)lock(2)查看当前…

NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕

移植前准备 移植好fbtft屏幕驱动 参考链接:友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕 获取源码 名称地址描述lvglhttps://github.com/lvgl/lvgl.gitlvgl-8.3.5lv_drivershttps://github.com/lvgl/lv_drivers.gitlv_drivers-6.1.1 创建工程目录 创…

旋转图像(旋转矩阵)

原题链接 旋转图像备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/rotate-image/ 算法分析 若矩阵的行列数为N,设i表示行索引,i属…

win10中Docker安装、构建镜像、创建容器、Vscode连接实例

Docker方便一键构建项目所需的运行环境:首先构建镜像(Image)。然后镜像实例化成为容器(Container),构成项目的运行环境。最后Vscode连接容器,方便我们在本地进行开发。下面以一个简单的例子介绍在win10中实现:Docker安装、构建镜像…

Flutter BottomSheet 三段式拖拽

BottomSheetBehavior 追踪 BottomSheet系统默认实现效果准备要实现的功能点:定义三段式状态:BottomSheetBehavoir阀值定义1. 未达到滚动阀值,恢复状态2. 达到滚动阀值,更新状态 前面倒是有讲过Android原生的BottomSheetBehavior&a…

Flask 框架集成Bootstrap

前面学习了 Flask 框架的基本用法,以及模板引擎 Jinja2,按理说可以开始自己的 Web 之旅了,不过在启程之前,还有个重要的武器需要了解一下,就是著名的 Bootstrap 框架和 Flask 的结合,这将大大提高开发 Web …

国产数据库-内核特性-低基数全局字典

国产数据库-内核特性-StarRocks低基数全局字典 StarRocks2.0引入了低基数全局字典,可以通过全局字典将字符串的相关操作转换成整型相关操作,大大提升查询性能。 1、低基数字典 对于利用整型替代字符串进行处理,通常使用字典编码进行优化。Sta…

人大金仓助力某大型金融机构业务系统异地容灾优化升级

日前,人大金仓助力某大型金融机构应收账款融资服务平台异地容灾项目顺利上线,保证了平台系统运行的连续性和数据安全,为充分发挥平台的融资功能,缓解中小微企业融资难提供了强有力的保障。 “ 缓解中小微企业融资难 某大型金融机构…

【MySQL--->数据库操作】

文章目录 [TOC](文章目录) 一、操作语句1.增2.删3.改4.查5.备份 二、字符集与校验规则 一、操作语句 1.增 语句格式:create database [if no exists]数据库名[create_specification [,create_specification] …]; 中括号内是可选项,if no exists是指如果数据库不存在就创建,存…

STM32 F103C8T6学习笔记7:双机无线串口通信

今日尝试配通俩个C8T6单片机之间的无线串口通信,文章提供原理,源码,测试效果图,测试工程下载: 目录 传输不规范问题: 串口通信资源: 单个串口资源理解: 单片机串口资源&#xf…

Redis的单线程与多线程

Redis的核心处理逻辑一直都是单线程 有一些分支模块是多线程(某些异步流程从4.0开始用的多线程,例如UNLINK、FLUSHALL ASYNC、FLUSHDB ASYNC等非阻塞的删除操作。网络I/O解包从6.0开始用的是多线程;) 为什么是单线程 多线程多好啊可以利用多核优势 官方给的解释 …

UI自动化环境的搭建(python+pycharm+selenium+chrome)

最近在做一些UI自动化的项目,为此从环境搭建来从0到1,希望能够帮助到你,同时也是自我的梳理。将按照如下进行开展: 1、python的下载、安装,python环境变量的配置。 2、pycharm开发工具的下载安装。 3、selenium的安装。…

Leetcode34 在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 代码: c…