Go语言的基础语法以及变量和常量

news2024/11/22 21:13:35

目录

基础语法

行分隔符

注释

标识符

变量

声明

赋值

作用域

常量

声明

iota


基础语法

行分隔符

在Go程序中,一般一行就是一个语句,不像Java等可以在一行写多个语句一样,而且最后也不需要用";"来结尾。

例如,下列写法就是一个Go语句

fmt.Println("HelloWorld")

注释

注释也分为单行注释和多行注释,单行注释以双斜线"//"开头,例如//单行注释

多行注释通常以"/*"开头,以"*/"结尾,例如:

/*
    多行注释
    多行注释
    多行注释
*/

标识符

标识符通常用来对变量、类型等程序实体进行命名。一个标识符实际上就是一个或者多个字母、数字、下划线组成的字符串序列,并且要求第一个字符不能是数字或者GO语言的关键字。

变量

Go语言中的变量可以分为以下几类:

数值型变量:包括整型(int、int8、int16、int32、int64)、浮点型(float32、float64)和复数型(complex64、complex128)。

字符串型变量:用于存储字符串类型的数据,使用 string 类型。

布尔型变量:用于存储布尔类型的数据,只有 true 和 false 两个值,使用 bool 类型。

指针型变量:用于存储内存地址,使用 *data_type 类型。

结构体变量:用于存储多个变量的组合,使用 struct 类型。

接口型变量:用于存储实现了某个接口的类型,使用 interface 类型。

函数变量:用于存储函数,使用 func 类型。

声明

Go语言是一种静态强类型语言,所以变量有明确的类型。变量的声明一般形式是使用var关键字,形式如下:

var age int

其中,var是变量声明的关键字,age是变量名,int是变量的类型。

当一个变量被声明后,如果不对其进行赋值,则系统会自动赋予它该类型的0值或者空值。例如int类型默认为0、float类型默认为0.0、bool类型默认为false,string类型默认为空字符串,指针类型默认为nil。

(1)标准声明

变量的标准声明格式为

var 变量名 变量类型

变量声明以关键字var开头,中间为变量名,最后为变量类型,无需分号结尾

(2)批量声明

批量声明是一个更加高效的变量声明方法,即使用关键字var和括号将一组变量放在一起。格式如下:

var {
    name string
    age int
    gender string
}

(3)简短声明

除了var关键字以外,还可以使用简短的变量定义和初始化。格式如下:

变量名 := 表达式

当使用简短声明时有三点需要注意:

1)只能用来定义变量

2)不能提供数据类型

3)只能在函数体内部使用,不能用来定义全局变量

赋值

(1)给一个变量赋值

var name string = "zxm"

这里需要说明,变量类型string一般可以省略不写,因为系统会自动进行判断变量类型

(2)给多个变量赋值

var {
    name string = "zxm"
    age int = 18
    gender string = "男"
}

这里的变量类型也可以省略。

作用域

(1)局部变量

表示在函数体内声明的变量称为局部变量,它的作用域只在函数体内,它的参数的返回值的变量也是局部变量。

(2)全局变量

表示在函数体外声明的变量称为全局变量,它的作用域可以在整个包内使用,也可以在任何一个函数中使用。

常量

Go语言中的常量可以分为以下几类:

数值型常量:与数值型变量类似,包括整型、浮点型和复数型常量。

字符串型常量:与字符串型变量类似,用于存储字符串类型的数据。

布尔型常量:与布尔型变量类似,用于存储布尔类型的数据。

iota 常量:特殊的常量类型,用于枚举,从 0 开始自增。

声明

常量是一种特殊类型的变量,其值在定义后不能被修改。在 Golang 中,常量可以使用 const 关键字进行定义

(1)标准声明

常量的标准声明格式为

const 常量名 = 常量值

(2)批量声明

const {
    a = 3.14
    b
    c
}

这里将常量a赋值3.14,b和c没有进行赋值,就会自动按照上面语句" a = 3.14"的值进行赋值,所以b和c也等于3.14

iota

常量声明可以使用常量生成器iota进行初始化。iota用于生成一组以相似规则初始化的常量,但是不需要每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota会被置为0,然后每有一个常量声明的行iota的值就加1。

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

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

相关文章

【华为OD机试 2023最新 】箱子之字形摆放(C语言题解 100%)

文章目录 题目描述输入描述输出描述备注用例题目解析C语言题目描述 有一批箱子(形式为字符串,设为str), 要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。 例如:箱子ABCDEFG,空地宽度为3,摆放结果如图: 则输出结果为: AFG BE C…

Linux Shell编程入门到实战(六)

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

国考省考结构化面试:整体介绍,考试题型,考试流程,仪表着装,如何备考?

国考省考结构化面试:整体介绍,考试题型,考试流程,仪表着装,如何备考? 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重…

基于ChatGPT的文档知识库客服系统-支持上传网址/文本/docx等数据

现在,很多公司都有自己的内容知识库,会产生大量的碎片话的内部知识,但是这样内部知识难以整合搜索。 我开发的文档知识库客服系统 gofly.v1kf.com ,可以应用于企业内部知识库管理,用户可以使用自然语言提问&#xff0c…

杂谈:铜钱儿

我个人是比较喜欢铜钱儿的。 收藏其实谈不上,因为我不买什么名品,都是玩儿一些屌丝钱,穷嘛,这个也没啥好掩饰的~ 瞎聊点儿钱币的话题吧。 小时候是家里偶尔能发现铜钱儿,一般都是清朝的,乾隆居多。有时候地…

【苹果IM群发家庭推日历推群发】筛选“兼容性”,默认为高效,挑选“兼容性”视频和图象不操纵HEVC的新格式,承袭使用旧的MPEG格式

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

Vue学习笔记(0504)

此页面对应着创建的Vue项目的显示页面 默认可以从下面的地址进行访问:http://localhost:8080 这里由于创建项目时我们选择了语法规范,所以我们在保存时哪些不符合代码规范的地方就会报错,只有修正代码规范后错误才会消失。 这里可以看出我们…

PyQt5桌面应用开发(7):文本编辑+语法高亮与行号

本文目录 PyQt5桌面应用系列代码编辑和语法高亮的亿点点细节作为用户报表的文本控件作为编辑器的文本控件代码编辑器的需求 代码编辑[^1]语法高亮[^2]小结 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2&…

三、Spring Cloud Alibaba组件nacos

一、什么是Nacos 官方地址: https://nacos.io/zh-cn/docs/v2/what-is-nacos.html 概念: 服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。即集注册中心配置中心服务管理的一个平…

【苹果推IM,苹果iMessage相册推】当Apple APNS推送服务器从您的应用程序接吸取注册消息时,它将为您回到一串devicetoken(很是重要)

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

养鱼-新手快乐缸阶段的一点总结

这是学习笔记的第 2456篇文章 养鱼这件事情上,除了满足了孩子的希望,也算是满足了自己的一点爱好。 从3月份开始的鱼缸进化到现在,对于养鱼这件事情的态度已经发生了很大的变化,我也趁此机会总结和梳理一下,先来定性我…

第三章:JavaScript 脚本语言(二)

最近发生了好多事情。 一、String对象 String对象是动态对象&#xff0c;需要创建实例后才可以引用其方法与属性。在js中也可以直接使用单引号或者双引号来直接创建实例化的对象。 anchor(name) 为字符串对象内容两边加上html<a name name></a>标记对bi…

【网络】网络基础入门

文章目录 局域网和广域网协议协议概念协议分层数据传输条件 OSI七层模型&#xff08;了解&#xff09;TCP/IP五层&#xff08;四层&#xff09;模型网络传输基本流程报头局域网通信原理以太网(了解)网络传输流程图数据包封装和分用 六、IP与MAC地址 局域网和广域网 独立模式: …

springboot+vue垃圾分类网站(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的垃圾分类网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

苹果备忘录误删了怎么恢复?恢复备忘录的3个方法!

案例&#xff1a;苹果删除的备忘录怎么恢复&#xff1f; 【友友们&#xff0c;苹果备忘录删除的备忘录在哪里可以恢复&#xff1f;有什么方法吗&#xff1f;】 苹果备忘录是日常生活中经常使用的一种记录方式&#xff0c;它可以帮助我们记录生活琐事、工作事项以及其他需要记录…

自动驾驶行业观察之2023上海车展-----车企发展趋势(3)

合资\外资发展 宝马&#xff1a;i7、iX1新车亮相&#xff0c;未来将持续发力电动化、数字化&#xff08;座舱&#xff09; 宝马在本次车展重点展示了电动化产品&#xff0c;新发车型为i7 M70L、iX1、及i vision Dee概念车等车型。 • 展示重点&#xff1a;电动化数字化&…

C/C++每日一练(20230505) 扩展兔子数列、删除重复项、寻找最小值

目录 1. 求尾数与常数之和 &#x1f31f; 2. 删除有序数组中的重复项 &#x1f31f; 3. 寻找旋转排序数组中的最小值 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

Selenium原理以及Python从零实现

Selenium简介 Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Google Chrome&a…

使用zabbix监控Windows指定服务| zabbix Windows service filter

环境&#xff1a;Centos Zabbix6 问题&#xff1a;使用自带的windows服务监控带出了所有的服务&#xff0c;只想监控特定的服务 解决办法&#xff1a;使用正则表达式过滤 背景&#xff1a;在Zabbix6中&#xff0c;使用自带的windows服务监控带出了所有的服务&#xff0c;只想监…

数据分析如何入门?这4类 Excel 函数助你从小白到大神

Excel是我们从事数据分析的朋友们&#xff0c;会经常用到的最基本的工具。而Excel函数又是Excel中最为重要的、最为常用的知识点&#xff0c;我们必须要掌握。 基于此&#xff0c;今天就分类为大家讲述最为常用的Excel函数。 逻辑函数 1、and 2、or 3、if 当使用了if(…