Golang 入门 : 变量声明
变量声明
在Go中,变量是包含值的一块存储。可以使用变量声明为变量命名。只需使用var关键字,后跟所需的名称以及变量将保存的值的类型。
一旦你声明了一个变量,就可以用=为它分配该类型的任何值:
quantity = 2
customerName = "xiaoming"
还可以在同一语句中为多个变量赋值。只需将多个变量名放在=的左侧,将相同数量的值放在右侧,并使用逗号分隔。
quantity, customerName = 3, "xiaoli"
一旦给变量赋了值,你就可以在任何要使用原始值的上下文中使用它们。
声明变量省略类型
如果你事先知道变量的值是什么,你可以声明变量并在同一行赋值:
你可以为现有变量分配新值,但它们必须是相同类型的值。Go的静态类型确保你不会意外地将错误类型的值赋给变量。
如果在声明变量的同时为其赋值,通常可以在声明中省略变量类型。这个分配给变量的值的类型将用作该变量的类型
短变量声明
如果你声明变量时就知道它的初始值是什么,那么更具有代表性的是使用短变量声明。你不必很明确地声明变量的类型并在之后使用=为其赋值,而是同时使用:=
不需要明确地声明变量的类型,赋给变量的值的类型成为该变量的类型。
当同一个变量名在同一作用域中被声明两次时,我们会得到一个编译错误:
但是,只要短变量声明中至少有一个变量名是新的,这是允许的。新变量名被视为声明,而现有的名字被视为赋值。
这种特殊处理是有原因的:许多Go函数返回多个值。如果仅仅因为要重用其中一个变量而必须分别声明所有变量,那将是一件痛苦的事情。
相反,Go允许你对所有事物使用短变量声明,即使对其中一个变量来说,它实际上是赋值。
由于短变量声明非常方便和简洁,因此它们比常规声明更常用。不过,你仍然会偶尔看到这两种形式,因此熟悉这两种形式很重要。
实践见真知
Golang 入门 : 变量声明的更多相关文章
- Golang入门教程(四)变量声明
Go 语言变量名由字母.数字.下划线组成,其中首个字母不能为数字. 一.Go的语言结构 1.Go的语言基础部分由这几个部分组成 包声明 引入包 函数 变量 语句&表达式 注释 比如下面这个简单 ...
- 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入门(1):安装与配置环境变量的意义
摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...
- es6 快速入门 系列 —— 变量声明:let和const
其他章节请看: es6 快速入门 系列 变量声明:let和const 试图解决的问题 经典的 var 声明让人迷惑 function demo1(v){ if(v){ var color='red' ...
- go语言入门教程:基本语法之变量声明及注意事项
一.变量的使用 1.1 什么是变量 变量是为存储特定类型的值而提供给内存位置的名称.在go中声明变量有多种语法. 所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变 1.2 声明 ...
- [Golang学习笔记] 04 程序实体1 变量声明
变量声明: Go语言的程序实体包含:变量.常量.函数.结构体和接口,是一门静态类型的编程语言. (在声明变量或常量的时候,需要指定类型,或者给予足够信息是的Go语言能够推导出类型) Go语言变量的类型 ...
- Java程序员的Golang入门指南(下)
Java程序员的Golang入门指南(下) 4.高级特性 上面介绍的只是Golang的基本语法和特性,尽管像控制语句的条件不用圆括号.函数多返回值.switch-case默认break.函数闭包.集合 ...
- Java程序员的Golang入门指南(上)
Java程序员的Golang入门指南 1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如 ...
- Golang 入门 : 结构体(struct)
Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...
- Golang 入门 : channel(通道)
笔者在<Golang 入门 : 竞争条件>一文中介绍了 Golang 并发编程中需要面对的竞争条件.本文我们就介绍如何使用 Golang 提供的 channel(通道) 消除竞争条件. C ...
随机推荐
- Qt/C++推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)
一.前言说明 推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页 ...
- Qt音视频开发05-保存视频文件(yuv/h264/mp4)
一.前言 和音频存储类似,视频的存储也对应三种格式,视频最原始的数据是yuv(音频对应pcm),视频压缩后的数据是h264(音频对应aac),由于很多播放器或者早期的播放器不支持直接播放h264文件, ...
- Python开发环境的构建:使用Anaconda与Pycharm
Anaconda是一个科学计算环境,当在电脑上安装好Anaconda3以后,就相当于安装好了Python,还有一些常用的库,如numpy,scrip,matplotlib等库. (如果你这里没有安装a ...
- RabbitMQ-限流
1.简介 为什么要对消费端进行限流? 其实很好理解,比如我们常能接触到的消费场景:春运期间12306火车票的抢购,双11期间的下单等.这些场景都有一个共同点就是都会导致短暂时间内请求数激增,如果我们的 ...
- Solution -「NOI 2017」「洛谷 P3824」泳池
\(\mathscr{Description}\) Link. 给定 \(n,k,p\), 求在一个 \(\infty\times n\) 的矩阵中, 每个位置的值以 \(p\) 的概率为 \ ...
- SpringBoot启动报错:HikariPool-1 - Exception during pool initialization.
不说废话,直接上错误信息: 2020-06-23 10:48:19.899 INFO 10608 --- [ main] cn.wps.ep.account.sync.Application : St ...
- ubuntu mysql 通过ip登录指南
详细步骤: 1. 安装mysql 首先,在ubuntu上安装mysql,打开终端,并执行以下命令: 1 sudo apt-get update 2 sudo apt-get install mysql ...
- ESP32 idf常用脚本命令及git命令
一.Linux环境 1.下载并安装相关的工具 ./install.sh 2.添加ESP-IDF工具到PATH中 . ./export.sh 3.打开配置界面 idf.py menuconfig 4.设 ...
- 探索魔乐社区:GLM-4V-9B模型微调之旅
人工智能的浪潮中,魔乐社区以其丰富的资源和开放的环境,逐渐成为了开发者们的新宠.今天,让我们一起走进魔乐社区,通过GLM-4V-9B模型微调的最佳实践,体验这个平台的独特魅力. 多模态的新星:GLM- ...
- macOS安装软件过程中常见几种报错的解决办法
对于刚使用 macOS 或者在更新系统后尝试运行应用时遇到问题的用户,可能会看到以下几种错误提示: xxx已损坏,无法打开,你应该将它移到废纸篓 打不开 xxx,因为它来自身份不明的开发者 打不开xx ...