guard分支结构

xiaoxiao2021-02-28  98

在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大大地提高了程序的可读性

转载请注明原文地址: https://www.6miu.com/read-70867.html

最新回复(0)