【go从零单排】go三种结构体:for循环、if-else、switch

挪威特罗姆瑟夜景

Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。

for循环是go语言唯一的循环语句,没错,在go中再也不会看到while true

package mainimport "fmt"func main() {//常规写法i := 1for i <= 3 {fmt.Println(i)i = i + 1}//变量定义在for循环内部fmt.Println("变量定义在for循环内部")for i := 1; i <= 3; i++ {fmt.Println(i)}//使用range循环fmt.Println("range")for i := range 3 {fmt.Println(i)}//breakfmt.Println("break")for i := 1; i <= 3; i++ {fmt.Println(i)break//第一次执行时直接跳出整个for循环,只打印1}//if 条件fmt.Println("if")for i := 1; i <= 3; i++ {if i == 2 {continue//continue表示i=2时本次循环结束,继续执行下一次for循环}fmt.Println(i)}
}

输出:

go run post.go
1
2
3
变量定义在for循环内部
1
2
3
range
0
1
2
break
1
if
1
3

if-else结构

package mainimport "fmt"func main() {//基本结构fmt.Println("基本结构")if 7%2 == 0 {fmt.Println("7 is 偶数")} else {fmt.Println("7 is 奇数")}fmt.Println("不带else的if语句")//if可以不带elseif 8%4 == 0 {fmt.Println("8 is divisible by 4")}//逻辑表达式and && 和or ||//逻辑orfmt.Println("逻辑or ||")if 8%2 == 0 || 7%2 == 0 {fmt.Println("either 8 or 7 are 偶数")}fmt.Println("逻辑and &&")//逻辑andif num := 4; num > 0 && num%2 == 0 {fmt.Println("num is 大于0的偶数")}fmt.Println("if-else if-else")//if-else if -elseif num := 9; num < 0 {fmt.Println(num, "is negative")} else if num < 10 {fmt.Println(num, "has 1 digit")} else {fmt.Println(num, "has multiple digits")}
}

输出:

go run post.go
基本结构
7 is 奇数
不带else的if语句
8 is divisible by 4
逻辑or ||
either 8 or 7 are 偶数
逻辑and &&
num is 大于0的偶数
if-else if-else
9 has 1 digit

switch

package mainimport ("fmt""time"
)func main() {i := 2fmt.Print("Write ", i, " as ") //这里注意和println的区别,不会换行switch i {case 1:fmt.Println("one")case 2:fmt.Println("two")case 3:fmt.Println("three")}//时间相关的switch语句fmt.Println("Now time is  ", time.Now()) //Println会自动输出不用格式化switch time.Now().Weekday() {            //time.Now().Weekday会判断当前是星期几,返回time.Sunday,time.Friday等等//case可以指定多个条件case time.Saturday, time.Sunday:fmt.Println("It's the weekend")//default是默认的,不符合任何条件时代码走到这里default:fmt.Println("It's a weekday")}t := time.Now()switch {case t.Hour() < 12: //time.Now.Hour()获取当前是几点fmt.Println("It's before noon")default:fmt.Println("It's after noon")}//通过type判断switch逻辑而不是value的例子whatAmI := func(i interface{}) {//whatAmI是定义了一个接受空接口类型 interface{} 参数 i 的匿名函数,因为空接口可以接受任何类型的值switch t := i.(type) {//i.type()获取i的数据类型并赋值给tcase bool:fmt.Println("I'm a bool")case int:fmt.Println("I'm an int")default:fmt.Printf("Don't know type %T\n", t)}}whatAmI(true)whatAmI(1)whatAmI("hey")
}

扩展知识

ime.Now()
time.Now() 是 Go 语言 time 包中的一个函数,它会返回一个 time.Time 类型的值,表示当前时间。
.Weekday()
在 time.Time 类型上,有一个方法 Weekday(),此方法返回一个 time.Weekday 类型的值,表示当前日期是星期几。这些值可以是:
time.Sunday
time.Monday
time.Tuesday
time.Wednesday
time.Thursday
time.Friday
time.Saturday
示例代码
为了更直观的理解,可以参考下面的代码:

package mainimport ("fmt""time"
)func main() {currentTime := time.Now()weekday := currentTime.Weekday()fmt.Println("Today is:", weekday)
}

思考🤔:

  • 个人觉得go的代码还是比较容易看懂,用{}包裹代码结构体作为分割。

  • time函数的用法需要继续了解。

  • interface没太看懂,先了解大概意思后面应该再深入理解

  • print、println、printf三种打印方式需要整理区分学习

掌握知识的最好方式就是教会别人,每篇文章都讲清楚一个知识点,欢迎留言我一起讨论。

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

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

相关文章

【数据增强】Mixup

方法来源 Mixup是2018年发表在ICLR上的一种数据增强方法&#xff0c;它通过将多组不同数据集的样本进行线性组合&#xff0c;生成新的样本&#xff0c;从而扩充数据集。 核心思想是从每个batch中随机选择两张图像&#xff0c;并以一定比例混合生成新的图像&#xff0c;新图像的…

基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式

时间序列数据表示了一个随时间记录的值的序列。理解这些序列内部的关系,尤其是在多元或复杂的时间序列数据中,不仅仅局限于随时间绘制数据点(这并不是说这种做法不好)。通过将时间序列数据转换为图,我们可以揭示数据片段内部隐藏的连接、模式和关系,帮助我们发现平稳性和时间连…

Qt学习笔记第41到50讲

第41讲 UI美化遗留问题解决 如上图所示目前记事本的雏形已现&#xff0c;但是还是有待优化&#xff0c;比如右下角的拖动问题。 解决方法&#xff1a; ①首先修改了Widget类的构造函数。 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) {ui->s…

社区养老服务小程序ssm+论文源码调试讲解

第2章 开发环境与技术 校车购票微信小程序的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对校车购票微信小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xf…

【RabbitMQ】03-交换机

1. 交换机 2. Fanout交换机 广播。生产者向exchange发消息 SpringBootTest public class SpringAmqpTest {Autowiredpublic RabbitTemplate rabbitTemplate;Testvoid testSimple() {String exchangName "hmall.fabout";rabbitTemplate.convertAndSend(exchangName…

Java基础-集合

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 前言 一、Java集合框架概述 二、Collection接口及其实现 2.1 Collection接口 2.2 List接口及其实现 …

K8S详解(5万字详细教程)

目录 ​编辑 一、集群管理命令 二、命名空间 1. 获取命名空间列表 2. 创建命名空间 3. 删除命名空间 4. 查看命名空间详情 三、Pod 1. Pod概述 2. Pod相位状态 3. 管理命令 3.1 获取命名空间下容器(pod)列表 3.2 查看pod的详细信息 3.3 创建 && 运行 3.4 …

AI驱动的图像文本提取【Llama 3.2-Vision】

本月初&#xff0c;我尝试了书籍封面识别&#xff0c;将 YOLOv10、EasyOCR 和 Llama 3 结合成一个无缝工作流程。结果如何&#xff1f;我自信地从书籍封面中提取标题和作者&#xff0c;就像这是我的新超能力一样。你可以在这篇文章中查看这一旅程&#xff1a;使用自定义 Yolov1…

打造你的Pokemon大师:深度学习多分类模型构建与本地部署全攻略

打造你的Pokemon大师&#xff1a;深度学习多分类模型构建与本地部署全攻略 引言 在这篇文章中&#xff0c;我将分享如何从头构建一个用于多分类任务的神经网络&#xff0c;并将其部署到本地环境。这是一个实践性质的教程&#xff0c;适合那些对深度学习模型部署感兴趣的初学者…

TikTok云手机怎样进行TikTok矩阵运营?

由于地区限制&#xff0c;国内无法直接访问TikTok。本文将介绍如何借助海外版TikTok云手机实现多账号管理&#xff0c;也就是矩阵运营&#xff0c;并探讨这种方式对提升工作效率的优势。 常见的多账号管理方式 许多人尝试通过VPN访问TikTok&#xff0c;但通常会遇到连接不稳定、…

光控资本:进入超级事件周 A股将如何运行

从国内来看&#xff0c;近期最重要的作业无疑是十四届全国人大常委会第十二次会议&#xff0c;该会议将于11月4日至8日在北京举办。商场广泛预期&#xff0c;本次会议将审议上调政府债务限额的议题&#xff0c;并或许推进新一轮的债务化解作业。这些方针意向有望为商场带来新的…

D59【python 接口自动化学习】- python基础之异常

day59 捕获异常常见问题 学习日期&#xff1a;20241105 学习目标&#xff1a;异常 -- 75 避坑指南&#xff1a;编写捕获异常程序时经常出现的问题 学习笔记&#xff1a; 捕获位置设置不当 设置范围不当 捕获处理设置不当 嵌套try-except语法错误 总结 位置&#xff0c;范围…

“高效开发之路:用Spring MVC构建健壮的企业级应用”

一、SpringMVC框架概念&#xff1a; &#xff08;一&#xff09;概述 SpringMVC是Spring框架的一个模块&#xff0c;Spring和SpringMVC无需中间整合层整合。该模块是一个基于MVC的web框架。 作用&#xff1a;只要需要前后端通信&#xff0c;就需要springMVC帮我完成&#xff…

Unity使用Spine导致设备发烫

spine制作过程中&#xff0c;美术同学使用裁剪技术 将一个特效文件做固定范围显示&#xff0c;实际上非常消耗CPU算力。 解决办法&#xff1a; 交给程序来实现裁剪&#xff0c;只要加Mask组件即可

if-else语句+例题练手(2)

前面我们讲过循环语句的for、while、do-while的使用&#xff0c;即组成C语言中的循环结构&#xff0c;而除了循环其实还有顺序和选择&#xff0c;顺序结构就是顺着程序中的代码一行一行执行下去&#xff0c;而选择为分支结构&#xff0c;有if语句和switch语句,今天先讲if语句和…

HTTP服务器测试与优化

目录 1 搭建一个基础的HTTP服务器 2 长连接测试 3 测试错误报文的处理 4 测试业务处理耗时超过超时时间的处理 5 测试同时收到多条正常请求 6 大文件传输测试 7 压力测试 1 搭建一个基础的HTTP服务器 在这个部分&#xff0c;我们需要搭建一个最简单的HTTP服务器&#xf…

【spring】Cookie和Session的设置与获取(@CookieValue()和@SessionAttribute())

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;程序猿的春天 获取Cookie 使用 Servlet 获取Cookie&#xff1a; Spring MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;也是在 Servlet 的基础上实现的 RestController RequestMapping…

网页版五子棋—— WebSocket 协议

目录 前言 一、背景介绍 二、原理解析 1.连接过程&#xff08;握手&#xff09; 2.报文格式 三、代码示例 1.服务端代码 &#xff08;1&#xff09;TestAPI 类 &#xff08;2&#xff09;WebSocketConfig 类 2.客户端代码 3.代码演示 结尾 前言 从本篇文章开始&am…

【Go语言】| 第2课:变量声明与、初始化、匿名变量和作用域

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

K8S简单部署,以及UI界面配置

准备两台服务器K8Smaster和K8Sminion 分别在两台服务器上执行以下代码 #添加hosts解析&#xff1b; cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain 192.168.45.133 master1 192.168.45.135 node2 EOF #临时关闭selinux和防火墙&#xff1b; sed …