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

iOS开发Swift-控制流

1.For-In循环

//集合循环
let names = ["a", "b", "c"]
for name in names {print("Hello, \(name)!")
}
//次数循环
for index in 1...5{print("Hello! + \(index)")
}
//不需要值时可以使用  _  来忽略此值
for _ in 1...5{print("Hello!")
}

2.while循环

while a < b{  //直到a < b成为false时停止循环print(".")
}

3.Repeat-while循环

repeat {print(".")
} while a < b    //先执行一次,然后a < b变成false时停止

4.If

if a < b {//语句1
} else if a = b {//语句2
} else {//语句3
}

5.Switch

Switch id {case "a":print("a")    //不需要加break,不存在隐式贯穿case "b":print("b")    //每种情况下必须包含语句,否则报错default:print("其他")
}

(1)复合匹配

switch id {case "a", "b":   //如果写不下了可分行书写print("c")default:print("其他")
}

(2)区间匹配

switch id {case 1..<5:print("1~4")case 5..12:print("5~11")default:print("其他")
}

(3)元组匹配

switch somePoint {case (0,0):       //从上到下一一匹配,如果多个case都匹配的话只取最前面print("0,0")case (_,0):print("几,0")case (0,_):print("0,几")default:print("其他")
}

(4)值绑定匹配

switch somePoint {case (let x, 0):print("\(x), 0")case (0, let y):print("0, \(y)")case let(x, y):print("\(x), \(y)")
}

(5)where

switch yetPoint {case let (x, y) where x == y:print("\(x) == \(y)")case let (x, y) where x == -y:print("\(x) == - \(y)")
}

6.控制转移语句

continue, break, fallthrough, return, throw

continue: 停止本次循环,开始下次循环

break: 立即结束整个控制流。可以使用break忽略switch的分支。

fallthrough贯穿: switch中的case加入贯穿,case会穿透到下一个case/ default。

7.带标签的语句

gameLoop: while a < b {a++switch a {case 1:continue gameLoop;case 2;break gameLoop;default:print("0")}
}

8.提前退出(guard)

guard 语句 else {//不满足条件语句的时候运行此处代码块return/break/continue/throw/调用无返回方法或函数
}
//满足条件语句时运行此处代码块

9.检测API可用性

if #available (iOS 10, macOS 10.12, *) {//iOS:平台名称。10:版本号。*:必须有,更高版本。//使用10版本API
} else {//使用之前版本的API
}

相关文章:

iOS开发Swift-控制流

1.For-In循环 //集合循环 let names ["a", "b", "c"] for name in names {print("Hello, \(name)!") } //次数循环 for index in 1...5{print("Hello! \(index)") } //不需要值时可以使用 _ 来忽略此值 for _ in 1...5{…...

leetcode875. 爱吃香蕉的珂珂(java)

二分查找 爱吃香蕉的珂珂二分查找 上期经典 爱吃香蕉的珂珂 难度 - 中等 LC - 875.爱吃香蕉的珂珂 珂珂喜欢吃香蕉。这里有 n 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k &#xff08;单位&…...

LeetCode-406-根据身高重建队列

题目描述&#xff1a; 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造…...

JVM——类加载与字节码技术—编译期处理+类加载阶段

3.编译期处理 编译期优化称为语法糖 3.1 默认构造器 3.2 自动拆装箱 java基本类型和包装类型之间的自动转换。 3.3泛型集合取值 在字节码中可以看见&#xff0c;泛型擦除就是字节码中的执行代码不区分是String还是Integer了&#xff0c;统一用Object. 对于取出的Object&…...

C#|如何调试进依赖动态库中

第一步&#xff1a;打开项目属性 第二步 打开debug的本地调试可用 第三步 把要调试的代码拖进主界面打断点就可以进断点了...

全新版本QStack云管系统3.5.3 附详细安装教程

源码介绍&#xff1a; QStack云管系统3.5.3&#xff0c;全新版本下载安装包详细搭建教程。 涵盖了服务器、云主机、代理IP等多种云产品管理运维和安全存储。 同时&#xff0c;QStack还支持对接运营众多公有云厂商产品资源&#xff0c;满足不同用户的需求。 通过开放API和插…...

SLB 负载均衡

优质博文&#xff1a;IT-BLOG-CN 一、简介 SLB (Server Loader Balancer&#xff09;将访问流量根据转发策略分发到后台多台服务器的流量分发控制服务&#xff0c;来实现多台服务器提供相同的业务服务。负载均衡扩展了应用的服务能力&#xff0c;增强了应用的可用性。主要用于…...

多核调度预备知识

进程调度的本质 任务/进程切换 即&#xff1a;上下文切换&#xff0c;内核对处理器上执行的进程进行切换“上下文” 指&#xff1a;寄存器的值“上下文切换”指&#xff1a; 将寄存器的值保存到内存中(进程被剥夺处理器&#xff0c;停止执行)将另一组寄存器的值从内存中加载到…...

什么是Git?解释Git的分布式版本控制系统的优势?

1、什么是Git&#xff1f;解释Git的分布式版本控制系统的优势&#xff1f; Git是一个开源的分布式版本控制系统&#xff0c;用于跟踪和管理代码库的版本历史。它允许用户在本地计算机上跟踪和管理代码库的更改&#xff0c;并与其他人协作开发项目。Git的分布式特性意味着它不需…...

软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计

软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计 一、网络应用体系安全设计相关知识点二、摘要三、正文四、总结一、网络应用体系安全设计相关知识点 软考高级系统架构设计师:计算机网络...

qt 实现音视频的分贝检测系统

项目场景&#xff1a; 目前的产品经常播放m3u8流&#xff0c;有的视频声音正常&#xff0c;有的视频声音就偏低&#xff0c;即使放到最大音量声音也是比较小&#xff0c;所以就产生了某种需求&#xff0c;能否自动感知视频声音的大小&#xff0c;如果发现声音比较小的情况&…...

SSM框架和Spring Boot+Mybatis框架的性能比较?

SSM框架和Spring BootMybatis框架的性能比较&#xff0c;没有一个绝对的答案&#xff0c;因为它们的性能受到很多因素的影响&#xff0c;例如项目的规模、复杂度、需求、技术栈、团队水平、测试环境、测试方法等。因此&#xff0c;我们不能简单地说哪个框架的性能更好&#xff…...

6个月的测试,来面试居然要18K,我一问连8K都不值

2023年7月份我入职了深圳某家创业公司&#xff0c;刚入职还是很兴奋的&#xff0c;到公司一看我傻了&#xff0c;公司除了我一个自动化测试&#xff0c;公司的测试人员就只有2个开发3个前端1个测试还有2个UI&#xff0c;在粗略了解公司的业务后才发现是一个从零开始的项目&…...

优美而高效:解决服务器通信问题

题目背景 在这个问题中&#xff0c;我们面临着一幅服务器分布图。图中的每个单元格可能有服务器&#xff08;标记为1&#xff09;或者没有&#xff08;标记为0&#xff09;。我们的任务是找出能够与至少一台其他服务器进行通信的服务器数量。 算法思路 为了解决这个问题&…...

C++模板的模板参数(五)

1.模板的模板参数 在C中&#xff0c;模板的模板参数&#xff08;Template Template Parameters&#xff09;是一种特殊的模板参数&#xff0c;允许我们将另一个模板作为模板参数传递给一个模板。这种技术可以用于实现更灵活和通用的模板设计。 模板的模板参数使用两个 “temp…...

基于jeecg-boot的flowable流程加签功能实现

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 今天我…...

day-03 基于TCP的服务器端/客户端

一.理解TCP和UDP TCP&#xff08;Transmission Control Protocol&#xff09;和UDP&#xff08;User Datagram Protocol&#xff09;是两种常见的传输层协议&#xff0c;用于在计算机网络中提供可靠的数据传输。 1.TCP&#xff1a; 连接导向&#xff1a;TCP是一种面向连接的…...

匿名对象和一般对象的区别

1.格式的不同 一般对象的格式&#xff1a; ​ Object obj new Object(); ​ 匿名对象的格式&#xff1a; ​ new Object(); 2.作为参数传递机制的不同 2.1先看看一般对象的使用机制 执行步骤&#xff1a; 1.首先程序进入main()函数&#xff0c;执行Object obj&#xff0c;…...

[MyBatis系列⑥]注解开发

&#x1f343;作者简介&#xff1a;准大三本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐MyBatis系列①&#xff1a;增删改查 ⭐MyBatis系列②&#xff1a;两种Dao开发方式 ⭐MyBatis系列③&#xff1a;动态SQL ⭐MyBatis系列④&#xff1a;核心…...

[ACL2023] Exploring Lottery Prompts for Pre-trained Language Models

Exploring Lottery Prompts for Pre-trained Language Models 文章链接 清深的工作&#xff0c;比较有意思的一篇。作者先给出假设&#xff0c;对于分类问题&#xff0c;在有限的语料空间内总能找到一个prompt让这个问题分类正确&#xff0c;作者称之为lottery prompt。为此&…...

单片机开源项目精选:从按键处理到物联网平台

1. 单片机开源项目精选&#xff1a;从按键处理到物联网平台 在嵌入式开发领域&#xff0c;GitHub上有大量高质量的开源项目可以加速我们的开发进程。这些项目往往由一线工程师开发维护&#xff0c;经过实际项目验证&#xff0c;比商业库更贴近开发者真实需求。今天我将分享几个…...

B+W 模块 BWU1664

BW (BihlWiedemann) BWU1664 是一款 ASi-3 专用模拟量输入模块&#xff0c;专为连接 Leuze ODSL 30 系列长距离激光测距传感器 设计&#xff0c;直接将测距数据接入 ASi 总线。一、核心定位系列&#xff1a;ASi-3 专用模拟量从站模块功能&#xff1a;2 路专用输入&#xff0c;直…...

Ubuntu 24.04 时间同步踩坑记:从 hwclock 到 timedatectl 的演进与实战

Ubuntu 24.04 时间同步踩坑记&#xff1a;从 hwclock 到 timedatectl 的演进与实战 记得第一次在 Ubuntu 24.04 上看到系统时间与 Windows 11 相差整整 8 小时时&#xff0c;我下意识地敲下了熟悉的 hwclock 命令——这个陪伴我多年的老伙计。然而终端冰冷的报错提示让我意识到…...

3步搞定开源工具ESLyric歌词源配置指南

3步搞定开源工具ESLyric歌词源配置指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 在数字音乐播放体验中&#xff0c;歌词显示的精准度与丰富度直接影…...

3步学会BilibiliDown:零基础掌握B站视频下载的终极指南

3步学会BilibiliDown&#xff1a;零基础掌握B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/…...

XL6008直流升压电路设计与应用详解

1. 直流升压电路设计详解1.1 应用背景与需求分析便携式电子设备在现代生活中扮演着越来越重要的角色&#xff0c;从手持扫码设备到数码相机闪光灯&#xff0c;这些设备对电源系统提出了特殊要求。由于便携性限制&#xff0c;设备通常采用单节或少量电池供电&#xff0c;导致输出…...

STM32G473 IAP实战:基于CAN/USART双通道的BootLoader设计与固件升级全流程解析

1. 为什么需要双通道IAP方案 在工业现场设备维护中&#xff0c;固件升级是个高频刚需。想象一下车间里有上百台设备需要更新程序&#xff0c;如果每台都要拆机接下载器&#xff0c;工程师怕是会当场崩溃。我去年参与的一个AGV调度项目就吃过这个亏&#xff0c;后来我们给STM32…...

摆脱论文困扰!盘点2026年口碑爆棚的的AI论文写作软件

一天写完毕业论文在2026年已不再是天方夜谭。最新测评显示&#xff0c;2026年AI论文写作软件凭借强大功能&#xff0c;彻底颠覆传统写作方式&#xff0c;覆盖选题、查重、润色、排版等全流程&#xff0c;实测效率提升超300%&#xff0c;让你高效搞定论文&#xff0c;轻松应对学…...

Qwen3-VL-4B Pro科研绘图生成:根据论文描述反向生成示意图初稿

Qwen3-VL-4B Pro科研绘图生成&#xff1a;根据论文描述反向生成示意图初稿 1. 项目概述 科研工作者经常面临一个痛点&#xff1a;在论文写作过程中&#xff0c;明明有清晰的理论描述和实验方案&#xff0c;却需要花费大量时间绘制专业的示意图。现在&#xff0c;借助Qwen3-VL…...

BGE-Reranker-v2-m3企业部署:高并发请求压力测试案例

BGE-Reranker-v2-m3企业部署&#xff1a;高并发请求压力测试案例 1. 项目背景与价值 在企业级RAG&#xff08;检索增强生成&#xff09;系统中&#xff0c;检索精度直接影响最终的回答质量。传统向量检索虽然快速&#xff0c;但容易受到关键词相似性的干扰&#xff0c;返回大…...