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 条件语句
使用if和else语句进行条件判断。
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程序的运行流程图:
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 解析代码
- 包声明:程序从
main包开始。 - 导入:通过
import导入fmt包进行格式化输出和输入。 - 定义变量
a和b并通过fmt.Scanln获取用户输入。 - 计算和并通过
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语言的特性,并逐渐引入更高级的主题。
练习题
- 编写一个Go程序,让用户输入三个数字并输出它们的最大值。
- 修改上面的程序,增加错误处理,确保用户输入的数字有效。
- 使用循环语句,计算从1到100的数字和,并输出结果。
怎么样今天的内容还满意吗?再次感谢观众老爷的观看,关注下方GZH,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关文章:
15分钟学Go 第4天:Go的基本语法
第4天:基本语法 在这一部分,将讨论Go语言的基本语法,了解其程序结构和基础语句。这将为我们后续的学习打下坚实的基础。 1. Go语言程序结构 Go语言程序的结构相对简单,主要包括: 包声明导入语句函数语句 1.1 包声…...
【Qt】Qt的介绍——Qt的概念、使用Qt Creator新建项目、运行Qt项目、纯代码方式、可视化操作、认识对象模型(对象树)
文章目录 Qt1. Qt的概念2. 使用Qt Creator新建项目3. 运行Qt项目3.1 纯代码方式实现3.2 可视化操作实现 4. 认识对象模型(对象树) Qt 1. Qt的概念 Qt 是一个跨平台的 C 图形用户界面应用程序开发框架。它是软件开发者提供的用于界面开发的程序框架&#…...
论文笔记:PTR: Prompt Tuning with Rules for Text Classification
Abstract 手动设计大量语言提示麻烦且易出错,而自动生成的提示,在非小样本场景下验证其有效性昂贵且耗时。因此,提示调优以处理多类别分类任务仍然具有挑战。为此,本文提出使用规则进行多类别文本分类提示调优(PTR&…...
服务器和中转机协同工作以提高网络安全
服务器和中转机(代理服务器)可以通过多种方式协同工作来提高网络安全。 常见的协同工作策略: 1. 使用代理服务器作为安全网关 访问控制:代理服务器可以作为网络的入口点,实施访问控制策略,如基于IP地址、…...
Java利用itextpdf实现pdf文件生成
前言 最近公司让写一个数据页面生成pdf的功能,找了一些市面代码感觉都太麻烦,就自己综合性整合了一个便捷的工具类,开发只需简单组装数据直接调用即可快速生成pdf文件。望大家一起学习!!! 代码获取方式&am…...
2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序
2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。 1. 针对两炼…...
datawhale大模型bot应用开发--task3:工作流
目录 一、介绍:Coze工作流 1.1工作流应用场景 1.2什么是工作流 1.3思考环节 二、各个工作流详情 2.1情感分类工作流 2.2 随机数工作流 2.3 必应搜索工作流 2.4 天气查询工作流 三、集合上面五个工作流的总工作流 一、介绍:Coze工作流 1.1工作…...
期货配资系统风控逻辑开发/完整源代码
期货配资系统风控逻辑的开发是确保系统安全、稳定、高效运行的关键环节。以下是对期货配资系统风控逻辑开发的详细分析: 一、风险识别与评估 风险来源分析: 市场风险:期货市场价格波动带来的风险。信用风险:投资者或配资方违约的…...
汽车免拆诊断案例 | 2023款零跑C01纯电车后备厢盖无法电动打开和关闭
故障现象 一辆2023款零跑C01纯电车,累计行驶里程约为2万km,车主进厂反映,后备厢盖无法电动打开和关闭。 故障诊断 接车后试车,操作后备厢盖外侧、驾驶人侧及遥控钥匙上的后备厢盖开启按钮,可以听到后备厢盖解锁的…...
分布式存储架构 与分布式一致性协议
分布式存储架构可以分为无中心节点架构和有中心节点架构。它们的设计在系统中的角色分配、数据管理、协调方式等方面有所不同。 1. 无中心节点架构(Decentralized/Peer-to-Peer Architecture) 在无中心节点的分布式存储架构中,所有节点都是…...
Unity Apple Vision Pro 保姆级开发教程 - Simulator 模拟器使用
教程视频 Apple VisionPro Simulator 模拟器使用教程 VsionOS Simulator 简介 visionOS Simulator 是一个用于开发和测试 visionOS 应用程序的工具。它模拟 Apple Vision Pro 的运行环境,帮助开发者在没有硬件设备的情况下创建、调试和优化他们的应用程序。VisionO…...
Vue 之 插件与组件的区别
在 Vue.js 中,插件(Plugin)和组件(Component)都是用来扩展 Vue 功能的重要工具,但它们的应用场景和使用方式有所不同。本文将通过对比的方式,帮助开发者更好地理解两者的区别,并通过…...
了解 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的时候报错,错误信息如下: configure: error: Package requirements (libbrotlienc) were not met:No package libbrotlienc foundConsider adjusting the PK…...
postgresql执行计划解读案例
简介 SQL优化中读懂执行计划尤其重要,以下举例说明在执行计划中常见的参数其所代表的含义。 创建测试数据 -- 创建测试表 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内容介绍 粒子群优化算法(PSO)是一种启发式搜索方法,灵感来源于鸟类群体觅食的行为。在PSO中,每个解都是搜索空间中的一个“粒子”,这些粒子以一定的速度飞行&am…...
使用 EasyExcel 相邻数据相同时行和列的合并,包括动态表头、数据
前言 在处理 Excel 文件时,经常会遇到需要对表格中的某些单元格进行合并的情况,例如合并相同的行或列。Apache POI 是一个强大的工具,但它使用起来相对复杂。相比之下,EasyExcel 是一个基于 Apache POI 的轻量级 Excel 处理库&am…...
985研一学习日记 - 2024.10.16
一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部,明天练胸和三头 3、LeetCode刷了3题 旋转图像:…...
安装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. 安全团队(网络安全工程师) 4. 业务部门(应用开发人员、产品经理) 5. 管理层与决策者(CTO/CIO、IT经理) 6. 最终用户(普通员工) 总结&…...
Java 微服务弹性模式:构建高可用分布式系统
Java 微服务弹性模式:构建高可用分布式系统今天我们来聊聊 Java 微服务中的弹性模式,这是构建高可用分布式系统的核心能力。一、为什么需要弹性模式 在分布式系统中,故障是不可避免的。网络延迟、服务宕机、资源耗尽等问题随时可能发生。如果…...
3步快速部署通义千问1.8B对话模型:无需复杂配置
3步快速部署通义千问1.8B对话模型:无需复杂配置 1. 为什么选择通义千问1.8B对话模型 通义千问1.5-1.8B-Chat-GPTQ-Int4是阿里云推出的轻量级对话模型,特别适合资源有限的部署场景。这个版本经过GPTQ-Int4量化后,显存需求大幅降低到仅4GB左右…...
OpenClaw语音控制扩展:千问3.5-27B实现本地语音指令识别
OpenClaw语音控制扩展:千问3.5-27B实现本地语音指令识别 1. 为什么需要语音控制OpenClaw? 去年冬天的一个深夜,我正在赶制一份数据分析报告。双手忙着在Excel和Python脚本间切换时,突然冒出一个念头:如果能用语音直接…...
AI最强模型发布却说太危险不能公开:这次不是演习
Anthropic刚刚发布了一个AI模型,然后说:太危险,不能让你用 :2026年4月7日,Anthropic发布了一个叫Claude Mythos Preview的新模型。它能自主发现数千个零日漏洞,覆盖所有主流操作系统。它能在未经专项安全训练的情况下&…...
二极管保护电路设计与应用指南
1. 项目概述:二极管保护电路的必要性 在电子电路实验中,线圈类负载(如继电器、电磁阀、电机绕组)突然断电时产生的反向电动势,一直是工程师们头疼的问题。这种瞬间高压轻则导致触点火花缩短器件寿命,重则直…...
OpenClaw技能扩展实战:千问3.5-27B驱动公众号自动发布系统
OpenClaw技能扩展实战:千问3.5-27B驱动公众号自动发布系统 1. 为什么需要自动化公众号发布 作为一个技术博主,我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身,而是发布前的繁琐流程:手动排版Markdown、上传图片…...
为什么国内的知名企业都在使用C1N短链接?
先说结论:确实有很多知名大厂都在用C1N短链接(c1n.cn),比如腾讯科技、TCL、字节跳动等等。可能有很多人会好奇,短链接本身技术并不复杂,一些具备研发能力的公司完全可以自己研发,为何还要采购第三方的链接服务?其实这…...
OpenClaw错误处理机制:千问3.5-35B-A3B-FP8任务失败排查
OpenClaw错误处理机制:千问3.5-35B-A3B-FP8任务失败排查 1. 为什么需要关注错误处理机制 上周我在本地部署了千问3.5-35B-A3B-FP8模型,准备用OpenClaw实现一个自动化内容处理流程。本以为配置好模型地址就能顺利运行,结果第一个任务就卡在了…...
分子编码解锁电脑:电化学测序技术
利用分子编码的密文登录电脑 日期:2025年5月16日 来源:某机构出版社 摘要:像DNA这样的分子能够在不依赖能源的情况下存储大量数据,但访问这些分子数据成本高且耗时。研究人员现已开发出一种替代方法,将信息编码在合成分…...
微软确认 Windows 11 24H2 高危漏洞:累计更新导致开始菜单与文件资源管理器崩溃
Windows 11 KB5034765 wont install, taskbar issues, and explorer.exe crashes 微软在支持文档(KB5072911)中明确指出:“在部署 2025 年 7 月及之后的 Windows 11 24H2 月度累计更新(如 KB5062553 及后续版本)后&am…...
