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

15分钟学Go 第4天:Go的基本语法

第4天:基本语法

在这一部分,将讨论Go语言的基本语法,了解其程序结构和基础语句。这将为我们后续的学习打下坚实的基础。

1. Go语言程序结构

Go语言程序的结构相对简单,主要包括:

  • 包声明
  • 导入语句
  • 函数
  • 语句
1.1 包声明

每个Go语言源文件都应该以包声明开始。包是Go语言的基本管理单位。

package main

main包是程序的入口点,表示可执行程序。

1.2 导入语句

导入语句用于引入其他包。使用import关键字来导入标准库或自定义的包。

import ("fmt"
)
1.3 函数

每个Go程序必须包含一个main函数,这是程序的入口点。

func main() {fmt.Println("Hello, World!")
}
1.4 语句

语句是程序的基本构建块。Go语言的语句通常包括变量声明、控制流语句、表达式等。

2. 基础语句

在Go语言中,有几类基础语句需要掌握:

2.1 变量声明

使用var关键词声明变量,可以指定类型,也可以让编译器自动推断类型。

var a int = 10  // 指定类型
b := 20        // 自动推断类型
语法描述
var x int显式声明整型变量
y := 5隐式声明并赋值
2.2 常量

常量是不可变的值,使用const关键字声明。

const Pi = 3.14
2.3 控制流语句

控制流语句包括条件语句和循环。

2.3.1 条件语句

使用ifelse语句进行条件判断。

if a > b {fmt.Println("a is greater than b")
} else {fmt.Println("b is greater than or equal to a")
}
2.3.2 循环语句

使用for关键字进行循环。

for i := 0; i < 5; i++ {fmt.Println(i)
}
3. 代码运行流程图

下面是第一个Go程序的运行流程图:

开始
执行包声明
导入需要的包
定义main函数
执行主逻辑
结束
4. 实战示例

我们来写一个简单的Go程序,实现用户输入两个数字并计算它们的和。

package mainimport ("fmt"
)func main() {var a, b intfmt.Print("请输入第一个数字: ")fmt.Scanln(&a)fmt.Print("请输入第二个数字: ")fmt.Scanln(&b)sum := a + bfmt.Printf("两个数字的和是: %d\n", sum)
}
4.1 解析代码
  1. 包声明:程序从main包开始。
  2. 导入:通过import导入fmt包进行格式化输出和输入。
  3. 定义变量ab并通过fmt.Scanln获取用户输入。
  4. 计算和并通过fmt.Printf输出结果。
5. 错误处理

Go语言非常注重错误处理。通常,函数会返回一个错误(error)类型,调用者需要检查并处理。

package mainimport ("fmt"
)func divide(a, b int) (int, error) {if b == 0 {return 0, fmt.Errorf("不能除以零")}return a / b, nil
}func main() {result, err := divide(10, 0)if err != nil {fmt.Println("错误:", err)return}fmt.Println("结果:", result)
}

在这个示例中,当发生除以零的情况,程序将返回并处理错误。

6. 格式化输出

在Go语言中,格式化输出使用fmt包。你可以使用不同的格式化标志来控制输出的样式。

name := "Go语言"
age := 10
fmt.Printf("语言:%s,版本:%d\n", name, age)

学习总结

在这一天的学习中,我们讨论了Go语言的基本程序结构和语法,涵盖了包的声明、变量的声明、常量、控制流语句以及如何处理错误。通过实战示例,了解了如何获取用户输入并进行简单的计算。

掌握这些基础知识将为我们后续学习更复杂的Go语言特性奠定正确的基础。接下来,我们将继续深入探索Go语言的特性,并逐渐引入更高级的主题。

练习题

  1. 编写一个Go程序,让用户输入三个数字并输出它们的最大值。
  2. 修改上面的程序,增加错误处理,确保用户输入的数字有效。
  3. 使用循环语句,计算从1到100的数字和,并输出结果。

怎么样今天的内容还满意吗?再次感谢观众老爷的观看,关注下方GZH,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!
在这里插入图片描述

相关文章:

15分钟学Go 第4天:Go的基本语法

第4天&#xff1a;基本语法 在这一部分&#xff0c;将讨论Go语言的基本语法&#xff0c;了解其程序结构和基础语句。这将为我们后续的学习打下坚实的基础。 1. Go语言程序结构 Go语言程序的结构相对简单&#xff0c;主要包括&#xff1a; 包声明导入语句函数语句 1.1 包声…...

【Qt】Qt的介绍——Qt的概念、使用Qt Creator新建项目、运行Qt项目、纯代码方式、可视化操作、认识对象模型(对象树)

文章目录 Qt1. Qt的概念2. 使用Qt Creator新建项目3. 运行Qt项目3.1 纯代码方式实现3.2 可视化操作实现 4. 认识对象模型&#xff08;对象树&#xff09; Qt 1. Qt的概念 Qt 是一个跨平台的 C 图形用户界面应用程序开发框架。它是软件开发者提供的用于界面开发的程序框架&#…...

论文笔记:PTR: Prompt Tuning with Rules for Text Classification

Abstract 手动设计大量语言提示麻烦且易出错&#xff0c;而自动生成的提示&#xff0c;在非小样本场景下验证其有效性昂贵且耗时。因此&#xff0c;提示调优以处理多类别分类任务仍然具有挑战。为此&#xff0c;本文提出使用规则进行多类别文本分类提示调优&#xff08;PTR&…...

服务器和中转机协同工作以提高网络安全

服务器和中转机&#xff08;代理服务器&#xff09;可以通过多种方式协同工作来提高网络安全。 常见的协同工作策略&#xff1a; 1. 使用代理服务器作为安全网关 访问控制&#xff1a;代理服务器可以作为网络的入口点&#xff0c;实施访问控制策略&#xff0c;如基于IP地址、…...

Java利用itextpdf实现pdf文件生成

前言 最近公司让写一个数据页面生成pdf的功能&#xff0c;找了一些市面代码感觉都太麻烦&#xff0c;就自己综合性整合了一个便捷的工具类&#xff0c;开发只需简单组装数据直接调用即可快速生成pdf文件。望大家一起学习&#xff01;&#xff01;&#xff01; 代码获取方式&am…...

2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序

2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂&#xff0c;同时在铁路线上增建一个车站&#xff0c;用来运送成品油。由于这种模式具有一定的普遍性&#xff0c;油田设计院希望建立管线建设费用最省的一般数学模型与方法。   1. 针对两炼…...

datawhale大模型bot应用开发--task3:工作流

目录 一、介绍&#xff1a;Coze工作流 1.1工作流应用场景 1.2什么是工作流 1.3思考环节 二、各个工作流详情 2.1情感分类工作流 2.2 随机数工作流 2.3 必应搜索工作流 2.4 天气查询工作流 三、集合上面五个工作流的总工作流 一、介绍&#xff1a;Coze工作流 1.1工作…...

期货配资系统风控逻辑开发/完整源代码

期货配资系统风控逻辑的开发是确保系统安全、稳定、高效运行的关键环节。以下是对期货配资系统风控逻辑开发的详细分析&#xff1a; 一、风险识别与评估 风险来源分析&#xff1a; 市场风险&#xff1a;期货市场价格波动带来的风险。信用风险&#xff1a;投资者或配资方违约的…...

汽车免拆诊断案例 | 2023款零跑C01纯电车后备厢盖无法电动打开和关闭

故障现象  一辆2023款零跑C01纯电车&#xff0c;累计行驶里程约为2万km&#xff0c;车主进厂反映&#xff0c;后备厢盖无法电动打开和关闭。 故障诊断  接车后试车&#xff0c;操作后备厢盖外侧、驾驶人侧及遥控钥匙上的后备厢盖开启按钮&#xff0c;可以听到后备厢盖解锁的…...

分布式存储架构 与分布式一致性协议

分布式存储架构可以分为无中心节点架构和有中心节点架构。它们的设计在系统中的角色分配、数据管理、协调方式等方面有所不同。 1. 无中心节点架构&#xff08;Decentralized/Peer-to-Peer Architecture&#xff09; 在无中心节点的分布式存储架构中&#xff0c;所有节点都是…...

Unity Apple Vision Pro 保姆级开发教程 - Simulator 模拟器使用

教程视频 Apple VisionPro Simulator 模拟器使用教程 VsionOS Simulator 简介 visionOS Simulator 是一个用于开发和测试 visionOS 应用程序的工具。它模拟 Apple Vision Pro 的运行环境&#xff0c;帮助开发者在没有硬件设备的情况下创建、调试和优化他们的应用程序。VisionO…...

Vue 之 插件与组件的区别

在 Vue.js 中&#xff0c;插件&#xff08;Plugin&#xff09;和组件&#xff08;Component&#xff09;都是用来扩展 Vue 功能的重要工具&#xff0c;但它们的应用场景和使用方式有所不同。本文将通过对比的方式&#xff0c;帮助开发者更好地理解两者的区别&#xff0c;并通过…...

了解 ChatGPT 中的公平性问题

了解 ChatGPT 中的公平性问题 最近,OpenAI 又发布了一篇新的博客。他们谈论了一个有趣又重要的话题——用户的身份如何影响 ChatGPT 的回答。 这项研究揭示了一个鲜明的事实,那就是 AI 可能会无意间对人类产生刻板印象。很可能这些刻板印象源自 AI 训练过程中使用的数据,而这…...

【PHP】安装swoole时报错:No package ‘libbrotlienc‘ found

一、环境 Debian 11(bullseye) PHP 8.2.14 Swoole 5.1.4 二、过程 今天在安装Swoole 5.1.4的时候报错&#xff0c;错误信息如下&#xff1a; configure: error: Package requirements (libbrotlienc) were not met:No package libbrotlienc foundConsider adjusting the PK…...

postgresql执行计划解读案例

简介 SQL优化中读懂执行计划尤其重要&#xff0c;以下举例说明在执行计划中常见的参数其所代表的含义。 创建测试数据 -- 创建测试表 drop table if exists customers ; drop table if exists orders ; drop table if exists order_items ; drop table if exists products ;…...

Matlab实现粒子群优化算法优化随机森林算法模型 (PSO-RF)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 粒子群优化算法&#xff08;PSO&#xff09;是一种启发式搜索方法&#xff0c;灵感来源于鸟类群体觅食的行为。在PSO中&#xff0c;每个解都是搜索空间中的一个“粒子”&#xff0c;这些粒子以一定的速度飞行&am…...

使用 EasyExcel 相邻数据相同时行和列的合并,包括动态表头、数据

前言 在处理 Excel 文件时&#xff0c;经常会遇到需要对表格中的某些单元格进行合并的情况&#xff0c;例如合并相同的行或列。Apache POI 是一个强大的工具&#xff0c;但它使用起来相对复杂。相比之下&#xff0c;EasyExcel 是一个基于 Apache POI 的轻量级 Excel 处理库&am…...

985研一学习日记 - 2024.10.16

一个人内耗&#xff0c;说明他活在过去&#xff1b;一个人焦虑&#xff0c;说明他活在未来。只有当一个人平静时&#xff0c;他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部&#xff0c;明天练胸和三头 3、LeetCode刷了3题 旋转图像&#xff1a…...

安装mysql 5.5.62

1>先检查是否存在其他版本mysql rpm -qa|grep -i mariadb 存在则卸载 yum -y remove maria* 2>下载mysql 5.5.62 wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz 3>确认系统是否安装libaio库 yum -y install libai…...

AnaTraf | 网络性能监控系统的价值

目录 1. IT运维工程师 2. 网络管理员 3. 安全团队&#xff08;网络安全工程师&#xff09; 4. 业务部门&#xff08;应用开发人员、产品经理&#xff09; 5. 管理层与决策者&#xff08;CTO/CIO、IT经理&#xff09; 6. 最终用户&#xff08;普通员工&#xff09; 总结&…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...