03. defer和switch

news/2024/10/9 14:06:38

1. switch

switch 语句是编写一连串 if - else 语句的简便方法。它运行第一个 case 值, 值等于条件表达式的子句。

Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只会运行选定的 case,而非之后所有的 case。 在效果上,Go的做法相当于这些语言中为每个case后面自动添加了所需的break语句。在 Go 中,除非以fallthrough语句结束,否则分支会自动终止。 Go 的另一点重要的不同在于 switch 的 case 无需为常量,且取值不限于整数。

package mainimport ("fmt""runtime"
)func main() {fmt.Print("Go 运行的系统环境:")switch os := runtime.GOOS; os {case "darwin":fmt.Println("macOS.")case "linux":fmt.Println("Linux.")default:// freebsd, openbsd,// plan9, windows...fmt.Printf("%s.\n", os)}
}

1.1 switch的求值顺序

switch 的 case 语句从上到下顺次执行,直到匹配成功时停止。

例如,

switch i {
case 0:
case f():
}

在 i==0 时,f 不会被调用。

无条件的 switch 同 switch true 一样。

这种形式能将一长串 if-then-else 写得更加清晰。

package mainimport ("fmt""time"
)func main() {t := time.Now()switch {case t.Hour() < 12:fmt.Println("早上好!")case t.Hour() < 17:fmt.Println("下午好!")default:fmt.Println("晚上好!")}
}

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

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

相关文章

通过MySQL Workbench 将 SQL Server 迁移到GreatSQL

通过MySQL Workbench 将 SQL Server 迁移到GreatSQL 一、概述 MySQL Workbench 提供了可以将Microsoft SQL Server的表结构和数据迁移到 GreatSQL 的功能,此次将通过MySQL Workbench将SQL Server的数据迁移到GreatSQL。 本文章只是简单演示一下单张表的迁移,如果在项目中使用…

我的第一个博客

我的第一个博客我的第一个博客 CBV添加装饰器的三种方式 # CBV添加装饰器 from django.views import View # 需要先导入method_decorator from django.utils.decorators import method_decorator # CBV中django不建议直接给类的方法加装饰器# @method_decorator(login_auth, na…

我店生活模式功能分析

一、平台概述 “我店”由上海我店科技网络有限公司创立于2021年8月,作为一个本地生活服务平台,它致力于响应国家的环保政策,并运用绿色积分来促进经济活动,帮助实体店铺吸引客流。面对实体商业的挑战,“我店”平台凭借其独特的商业模式,为商户与顾客提供了新的合作与发展…

AI即服务平台的优势

AI即服务平台以其降低成本、加速创新、提升效率、增强安全性及促进普惠化等多方面的优势,正在深刻改变企业运营模式和市场竞争格局。当今,企业为了提升竞争力、优化运营流程、增强用户体验,纷纷探索AI技术的应用。然而,AI技术的复杂性和高昂的研发成本往往成为中小企业和初…

易基因: Nat Commun:中南大学曾朝阳/熊炜/龚朝建团队利用ChIP-seq等揭示头颈鳞癌免疫逃逸机制|项目文章

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 免疫逃逸是癌症进展的关键里程碑,是肿瘤免疫治疗的理论基础。头颈部鳞状细胞癌((head and neck squamous cell carcinoma, HNSCC))是全球最常见的恶性肿瘤之一,传统治疗选择包括手术切除、放疗和化疗。最近…

20222407 2024-2025-1《网络与系统攻防技术》实验一实验报告

1.实验内容 1.1本周学习内容 1.1.1缓冲区溢出的定义和原因 定义:写入缓冲区的数据量超过该缓冲区能容纳的最大限度,造成溢出的数据改写了与该缓冲区相邻的原始数据的情形。 原因:(直接)由于代码语言的设计问题、程序员的安全意识问题,程序没有严格的内存越界检查;(根本…

揭秘!尤雨溪成立的VoidZero如何改变前端世界

Vue和Vite之父尤雨溪宣布成立公司 VoidZero,目前已经融资3200万。这篇文章欧阳将带你了解VoidZero是如何改变javascript的世界!前言 Vue和Vite之父尤雨溪宣布成立公司 VoidZero,目前已经融资3200万。这篇文章欧阳将带你了解VoidZero是如何改变javascript的世界! 关注公众号…

20222314 2024-2025-1 《网络与系统攻防技术》实验一实验报告

网络攻防实验报告姓名:陈振烨学号:20222314实验日期:2024/09/29 — 2024/10/09实验名称:缓冲区溢出和shellcode 指导教师:王志强实验要求:1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分)2.掌握反汇编与十六进制编程器 (0.5分)3.能正确修改机器指令改变程序执行流…