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

Go 变量

在Go中,有不同的变量类型,例如:

  • int 存储整数(整数),例如123或-123
  • float32 存储浮点数字,带小数,例如19.99或-19.99
  • string - 存储文本,例如“ Hello World”。字符串值用双引号括起来
  • bool 存储具有两个状态的值:true或false

声明(创建)变量

在Go中,有两种声明变量的方法:

使用var关键字:

使用var关键字,后跟变量名称和类型:

语法

var variablename type = value

注意:您始终必须指定typevalue(或两者)。

使用:=符号

使用:=符号,后跟变量值:

语法

variablename := value

注意:在这种情况下,变量的类型是从值中推断的(这意味着编译器根据值决定变量的类型)。

注意:无法使用:=声明变量,而不将值分配给它。

具有初始值的变量声明

如果从一开始就知道变量的值,则可以在一行中声明变量并为其赋值:

示例

package main
import ("fmt")func main() {var student1 string = "John" //type is stringvar student2 = "Jane" //type is inferredx := 2 //type is inferredfmt.Println(student1)fmt.Println(student2)fmt.Println(x)
}

注意:变量**student2x****的变量类型是从其值推断**的。

没有初始值的变量声明

在Go中,所有变量都已初始化。因此,如果声明变量而没有初始值,则其值将设置为其类型的默认值:

示例

package main
import ("fmt")func main() {var a stringvar b intvar c boolfmt.Println(a)fmt.Println(b)fmt.Println(c)
}

示例解释

在此示例中有3个变量:

  • a
  • b
  • c

这些变量已声明,但未分配初始值。

通过运行代码,我们可以看到它们已经具有其各自类型的默认值:

  • a""
  • b0
  • cfalse

声明后的值分配

可以在声明变量后将值分配给变量。这对于值最初未知的情况很有帮助。

示例

package main
import ("fmt")func main() {var student1 stringstudent1 = "John"fmt.Println(student1)
}

注意:无法使用:=声明变量,而不将值分配给它。

var和 := 之间的区别

var:=之间存在一些小差异:

var:=
可以在函数内部和外部使用仅可在函数内部使用
可以分别进行变量声明和值分配变量声明和值分配不能分别进行(必须在同一行中完成)

示例

此示例显示在函数外部使用var关键字声明变量:

package main
import ("fmt")var a int
var b int = 2
var c = 3func main() {a = 1fmt.Println(a)fmt.Println(b)fmt.Println(c)
}

示例

由于:=在函数外使用,因此运行程序会导致错误。

package main
import ("fmt")a := 1func main() {fmt.Println(a)
}

结果:

./prog.go:5:1: syntax error: non-declaration statement outside function body

Go多变量声明

在Go中,可以在同一行中声明多个变量。

示例

此示例显示如何在同一行中声明多个变量:

package main
import ("fmt")func main() {var a, b, c, d int = 1, 3, 5, 7fmt.Println(a)fmt.Println(b)fmt.Println(c)fmt.Println(d)
}

注意: 如果使用type关键字,则每行只能声明一个类型的变量。

如果未指定type关键字,则可以在同一行中声明不同类型的变量:

示例

package main
import ("fmt")func main() {var a, b = 6, "Hello"c, d := 7, "World!"fmt.Println(a)fmt.Println(b)fmt.Println(c)fmt.Println(d)
}

在块中声明Go变量

多个变量声明也可以组合到块中以增加可读性:

示例

package main
import ("fmt")func main() {var (a intb int = 1c string = "hello")fmt.Println(a)fmt.Println(b)fmt.Println(c)
}

Go变量命名规则

变量可以有简短的名称(如x和y)或更描述性的名称(age,price,carname等)。

Go变量命名规则:

  • 变量名称必须以字母或下划线字符(_)开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(a-z,A-Z0-9_
  • 变量名称区分大小写(age,Age和AGE是三个不同的变量)
  • 变量名称的长度没有限制
  • 变量名称不能包含空格
  • 变量名称不能是任何Go关键字

多字变量名称

具有多个单词的变量名称可能难以阅读。

有几种技术可用于使它们更易于阅读:

驼峰命名法

每个单词,除了第一个单词以外,都以大写字母开头:

myVariableName = "John"

帕斯卡命名法

每个单词以大写字母开头:

MyVariableName = "John"

蛇形命名法

每个单词之间用下划线字符分隔:

my_variable_name = "John"

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

相关文章:

Go 变量

在Go中,有不同的变量类型,例如: int 存储整数(整数),例如123或-123float32 存储浮点数字,带小数,例如19.99或-19.99string - 存储文本,例如“ Hello World”。字符串值用…...

【雷达通信】非相干多视处理(CSA)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

73. 矩阵置零

题目链接:力扣 解题思路: 方法一:比较容易想到的方向,使用两个数组row和col保存有0的行或者列,然后将有0的那一行或那一列的所有元素都设置为0 AC代码 class Solution {public void setZeroes(int[][] matrix) {in…...

‘大数据技术与应用’和‘数据科学与大数据技术’有什么区别

一、侧重点不同 ‘大数据技术与应用’主要侧重于大数据的存储、处理和分析技术、包括数据挖掘、机器学习、数据仓库、分布式计算等方面的研究,旨在开发大数据相关的应用程序和系统,以满足商业和企业的需求。 ‘数据科学与大数据技术’则更加注重数据本…...

没有jsoup,rust怎么解析html呢?

在 Rust 中,你可以使用各种库来解析网页内容。一个常用的库是 reqwest ,它提供了一个简单的方式来发送 HTTP 请求并获取网页内容。另外,你可以使用 scraper 或 select 等库来解析 HTML 或 XML 格式的网页内容。 下面是一个使用 reqwest 和 sc…...

【C高级】Day4 shell脚本 排序

1. 整理思维导图 2. 写一个函数&#xff0c;获取用户的uid和gid并使用变量接收 #!/bin/bash function getid() {uidid -ugidid -g }getid echo "uid$uid" echo "gid$gid"3. 整理冒泡排序、选择排序和快速排序的代码 #include <myhead.h>void Inp…...

大模型开发(十六):从0到1构建一个高度自动化的AI项目开发流程(中)

全文共1w余字&#xff0c;预计阅读时间约40~60分钟 | 满满干货(附代码)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;通过LtM提示流程实现自动构建符合要求的函数&#xff0c;并通过实验逐步完整测试code_generate函数功能。 代码下载点这里 一、介绍 此篇文章为…...

【深入了解pytorch】PyTorch强化学习:强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法

【深入了解pytorch】PyTorch强化学习:强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法 PyTorch强化学习:介绍强化学习的基本概念、马尔可夫决策过程(MDP)和常见的强化学习算法引言强化学习的基本概念状态(State)动作(Action)奖励(Reward)策略(Pol…...

尚硅谷张天禹Vue2+Vue3笔记(待续)

简介 什么是Vue&#xff1f; 一套用于构建用户界面的渐进式JavaScript框架。将数据转变成用户可看到的界面。 什么是渐进式&#xff1f; Vue可以自底向上逐层的应用 简单应用:只需一个轻量小巧的核心库 复杂应用:可以引入各式各样的Vue插件 Vue的特点是什么&#xff1f; 1.采…...

深度学习(35)—— StarGAN(2)

深度学习&#xff08;34&#xff09;—— StarGAN&#xff08;2&#xff09; 完整项目在这里&#xff1a;欢迎造访 文章目录 深度学习&#xff08;34&#xff09;—— StarGAN&#xff08;2&#xff09;1. build model&#xff08;1&#xff09;generator&#xff08;2&#…...

连续四年入选!三项荣耀!博云科技强势上榜Gartner ICT技术成熟度曲线

日&#xff0c;全球知名咨询公司Gartner发布了2023年度的《中国ICT技术成熟度曲线》&#xff08;《Hype Cycle for ICT in China, 2023》&#xff0c;以下简称“报告”&#xff09;。令人瞩目的是&#xff0c;博云科技在报告中荣获三项殊荣&#xff0c;入选云原生计算&#xff…...

Docker实战-操作Docker容器实战(一)

导语   在之前的分享中&#xff0c;我们介绍了关于如何去操作Docker镜像&#xff0c;下面我们来看看如何去操作容器。 简单来讲&#xff0c;容器是镜像运行的一个实例&#xff0c;与镜像不同的是镜像只能作为一个静态文件进行读取&#xff0c;而容器是可以在运行时进行写入操…...

c#设计模式-行为型模式 之 观察者模式

定义&#xff1a; 又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者 对象同时监听某一个主题对象。这个主题对象在状态变化时&#xff0c;会通知所有的观察者对象&#xff0c;使他们能够自 …...

开窗积累之学习更新版

1. 开窗使用1之 count range between current row and current row 将相同排序字段的值进行函数计算 selectsku_id,substr(create_date,1,7) date_month,order_id,create_date,sku_num*price,sum(sku_num*price) over (partition by sku_id order by substr(create_date,1,7)…...

ffplay简介

本文为相关课程的学习记录&#xff0c;相关分析均来源于课程的讲解&#xff0c;主要学习音视频相关的操作&#xff0c;对字幕的处理不做分析 ffplay播放器的意义 ffplay.c是FFmpeg源码⾃带的播放器&#xff0c;调⽤FFmpeg和SDL API实现⼀个⾮常有⽤的播放器。 ffplay实现了播…...

mysql之limit语句详解

一、介绍 LIMIT是MySQL内置函数&#xff0c;其作用是用于限制查询结果的条数。 二、使用 1. 语法格式 LIMIT [位置偏移量,] 行数 其中&#xff0c;中括号里面的参数是可选参数&#xff0c;位置偏移量是指MySQL查询分析器要从哪一行开始显示&#xff0c;索引值从0开始&#xff…...

4.while循环

1、while语句的语法结构如下&#xff1a; while语句可以在条件表达式为真的前提下&#xff0c;循环执行指定的一段代码&#xff0c;直到表达式不为真时结束循环。 1.1while语法结构 while(条件表达式){// 循环体} 执行思路&#xff1a; 1、执行思路 当条件表达式结果为tru…...

【雕爷学编程】 MicroPython动手做(35)——体验小游戏2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

mouseover 和 mouseenter

mouseover 和 mouseenter 事件是 JavaScript 中常用的两个鼠标事件&#xff0c;它们有一些区别&#xff1a; 触发条件: mouseover 事件在鼠标指针从元素外部进入元素内部时触发&#xff0c;包括子元素。换句话说&#xff0c;只要鼠标进入元素或其子元素&#xff0c;就会触发 mo…...

[JavaScript游戏开发] 绘制Q版地图、键盘上下左右地图场景切换

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 文章目录 系列文章目录前言一、本章节…...

CI/CD持续集成持续发布(jenkins)

1.背景 在实际开发中&#xff0c;我们经常要一边开发一边测试&#xff0c;当然这里说的测试并不是程序员对自己代码的单元测试&#xff0c;而是同组程序员将代码提交后&#xff0c;由测试人员测试&#xff1b; 或者前后端分离后&#xff0c;经常会修改接口&#xff0c;然后重新…...

Qt5.14.2+QtCreator+PDB 查看源码

1. 在Creator添加源码 2. 安装PDB文件 Qt下载时没有整合最新的PDB文件下载&#xff0c;如果没有安装PDB文件&#xff0c;即使安装了src也无法调试。 双击MaintenanceTool.exe->设置->资料档案库->临时资料档案库->添加按钮&#xff0c;添加如下下载源&#xff1a…...

DOM基础获取元素+事件基础+操作元素

一.DOM简介 DOM&#xff0c;全称“Document Object Model&#xff08;文档对象模型&#xff09;”&#xff0c;它是由W3C定义的一个标准。 在实际开发中&#xff0c;我们有时候需要实现鼠标移到某个元素上面时就改变颜色&#xff0c;或者动态添加元素或者删除元素等。其实这些效…...

MATLAB——感知神经网络学习程序

学习目标&#xff1a;从学习第一个最简单的神经网络案例开启学习之路 感知器神经网络 用于点的分类 clear all; close all; P[0 0 1 1;0 1 0 1]; %输入向量 T[0 1 1 1]; %目标向量 netnewp(minmax(P),1,hardlim,lea…...

SpringBoot中事务失效的原因

SpringBoot中事务失效的原因 文章目录 SpringBoot中事务失效的原因一、事务方法非public修饰二、非事务方法调用事务方法三、事务方法的异常被捕获四、事务异常类型不对五、事务传播行为不对六、没有被Spring管理6.1、暴漏代理对象6.2、使用代理对象 常见的事务失效原因包括如下…...

Webstorm的一些常用快捷键

下面是Webstorm的一些常用快捷键&#xff1a; ctrl shift n: 打开工程中的文件&#xff0c;目的是打开当前工程下任意目录的文件。ctrl j: 输出模板ctrl b: 跳到变量申明处ctrl alt T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)ctrl []: 匹配 {}[]ctrl F1…...

系统集成项目成本管理

在项目中&#xff0c;成本是指项目活动或其组成部分的货币价值或价格&#xff0c;包括为实施、完成或创造该活动或其组成部分所需资源的货币价值。具体的成本一般包括直接工时、其他百接费用、间接工时、其他间接费用以及采购价格。 项目全过程所耗用的各种成本的总和为项目成本…...

Spring Boot整合ES的两种方式

使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成&#xff0c;简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…...

Ajax_3 Ajax原理+ (XMLHttpRequest + Promise )+ 封装一个axios插件库,实现功能。

Ajax_3 Ajax原理 01-Ajax原理-XMLHttpRequest 使用XMLHttpRequest 步骤&#xff1a; 创建XMLHttpRequest对象配置请求方法请求url网址监听loadend事件&#xff0c;接受响应结果发起请求 需求&#xff1a;使用XMLHttpRequest对象与服务器通信 代码示例 // 1. 创建 XMLHttpReq…...

计算机网络(7) --- UDP协议和TCP协议

计算机网络&#xff08;6&#xff09; --- https协议_哈里沃克的博客-CSDN博客https协议https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目录 1.补充知识 1.PORT端口号 2.端口号范围划分 3.知名端口号 2.UDP协议 1.UDP报头 2.U…...

腾讯网站开发规范/站长网站提交

EEG 基础 脑电图&#xff08;Electroencephalogram,EEG&#xff09;是通过精密的电子仪器&#xff0c;从头皮上将脑部的自发性生物电位加以放大记录而获得的图形&#xff0c;是通过电极记录下来的脑细胞群的自发性、节律性电活动。有常规脑电图、动态脑电图监测、视频脑电图监…...

wordpress登陆后查看/百度应用市场app下载

正点原子开拓者FPGA开发板上自带了一枚无源蜂鸣器&#xff0c;本篇将记录如何通过按键来控制蜂鸣器的开关。 功能描述 初始蜂鸣器不响&#xff0c;按键按一下蜂鸣器开始响&#xff0c;再按一下蜂鸣器停止。 模块结构 本次采用了三个模块&#xff0c;一个顶层模块&#xff0c;…...

网站建设技术列表/技能培训班有哪些课程

Java实现文件操作方式有很多&#xff0c;这里写了几个小工具&#xff0c;需要的话可以直接拷贝使用&#xff0c;或者优化后使用。基本概念FileChannel是一个用读写&#xff0c;映射和操作一个文件的通道&#xff0c;也是Java NIO对应于磁盘等存储设备文件操作的通道。除了读写操…...

网站的惩罚期要怎么做/色盲测试图第六版

简介ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。同时ES还是一个分布式文档数据库&#xff0c;其中每个字段均可被索引&#xff0c;而且每个字段的数据均可被搜索&#xff0c;能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在…...

电脑做网站/推广下载

主要是记录自己学习Java过程中的碎碎念~转载于:https://www.cnblogs.com/star-missw/p/10470956.html...

找人做任务网站有哪些/seo优化博客

clear; clc; A rand(4) cond(A)     %求矩阵A的条件数 Det(A)     %求方阵A的行列式 Dot(A,B)     %矩阵A与B的点积 Eig(A)     %方阵A的特征值和特征向量 Norm(A,1)   %矩阵A的1-范式 Norm(A)     %矩阵A的2-范式 norm(A,2) Trace(A)     %矩阵A的…...