guard分支结构

在Swift中,除了if、switch分支结构之外,又增加了一种分支结构——guard。

guard语句与if语句非常类似,可以判断一个条件为true情况下执行某语句,否则终止或跳过执行某语句。它的设计目的是替换复杂if-else语句的嵌套,提高程序的可读性,在某些情况下可以取得很好的效果。


guard的结构如下:

guard  条件表达式  else {

语句

  }

语句组

当条件表达式为true时,跳过else语句中的内容,执行语句组内容,条件表达式为false时执行else语句中的内容。


接下来看一个对比:(创建一个函数判断Blog结构体中的结构是否完整)

struct Blog {
    let name: String?
    let URL: String?
    let Author: String?
}
func ifLongStyleBlog(blog: Blog) {
    if let blogName = blog.name {
        print("这篇博客名: \(blogName)")
        
        if let blogAuthor = blog.Author {
            print("这篇博客由\(blogAuthor)写的")
            
            if let blogURL = blog.URL {
                print("这篇博客网址: \(blogURL)")
            } else {
                print("这篇博客没有网址!")
            }
        } else {
            print("这篇博客没有作者!")
        }
    } else {
        print("这篇博客没有名字!")
    }
} //if-else结构嵌套看起来非常的复杂且混乱,不便于阅读
func guardlongStyleBlog(blog: Blog) {
    guard let blogName = blog.name else {
        print("这篇博客没有名字!")
        return
    }
    
    print("这篇博客名: \(blogName)")
    
    guard let blogAuthor = blog.Author else {
        print("这篇博客没有作者!")
        return
    }
    
    print("这篇博客由\(blogAuthor)写的")
    
    guard let blogURL = blog.URL else {
        print("这篇博客没有网址!")
        return
    }
    
    print("这篇博客网址: \(blogURL)")
} //可以清楚地看出guard大大地提高了程序的可读性


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值