Swift 中语法糖和??

本文深入解析Swift中的语法糖特性,包括if let语句的简洁性和可读性,空合运算符(??)的工作原理,以及hasSuffix和hasPrefix字符串操作方法的使用。通过实例展示这些特性如何提升代码效率。

需要练习的小伙伴可以去苹果的官方去敲一遍:
https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html

###一、语法糖if let 理解

代码片段一:
var optionalName: String? = "你好!"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "测试, \(name)"
    print(greeting)
}
输出内容:测试, 你好!
代码片段二:
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
    greeting = "测试, \(name)"
    print(greeting)
}else{
    greeting = "玩一玩"
    print(greeting)
}
输出内容:玩一玩!

分析:语法糖:if let的搭配使用相精简了代码并切可读性也不差,从代码上我们可以看出如果可选值为nil条件语句就会跳过括号中的代码,否则的话,就会去解包可选值并将其配给常量let,这使得在代码块内可用的展开值可用。

###二、??(空合运算符)

在查看苹果官方文档时候看见??,第一反应怎么这家伙怎么这么想三目运算符呢,问了下度娘感觉这篇文章解释的真好。https://www.jianshu.com/p/3ede1ec31351

let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"

分析:其实??(空合运算符)就做了一件很简单的事情,以上边代码为例,它其实就是对nickName做了一个判断,如果判断nickName为nil的话就取默认的fullName的值,否则nickName不为nil,则将nickName解包后返回。

###二、hasSuffix和hasPrefix的区别

hasSuffix(string)返回一个布尔值表示字符串是否以指定的后缀结束。
如果一直返回true 如果不一致返回false

hasPrefix(string)返回一个布尔值表示字符串是否以指定的前缀开始。
如果一直返回true 如果不一致返回false

其实swfit中【hasSuffix和hasPrefix】与oc中的用法和含义是相同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值