[译]Swift中的空字符串

栏目: Swift · 发布时间: 6年前

内容简介:Swift 一个特色就是有很多的语法糖,初学可能觉得hold不住,实际用的时候倒是挺便利。基于对此的喜爱,简单转译一篇短文,Swift中

Swift 一个特色就是有很多的语法糖,初学可能觉得hold不住,实际用的时候倒是挺便利。

基于对此的喜爱,简单转译一篇短文, Empty Strings in Swift

isEmpty 属性

Swift中 String 是字符的结合,遵循 Collection 协议。因此会有 isEmpty 的属性,来判断字符串是否为空。

var isEmpty: Bool {get}

Collection.swift 的具体实现是:

public var isEmpty: Bool {
	return startIndex == endIndex
}
"Hello".isEmpty  // false
"".isEmpty       // true

不要使用 count 是否为0的方式来判断,这样会遍历整个字符串,性能差。

如何判断空白字符串

有时候的需求是判断字符串是否是空白字符串,因为设计字符编码的问题,通常不好实现。

" "        // space
"\t\r\n"   // tab, return, newline
"\u{00a0}" // Unicode non-breaking space
"\u{2002}" // Unicode en space
"\u{2003}" // Unicode em space

通常的一些做法是,trim左右的空白,然后判断是否为空,但是swift中有更好的方式,可以使用 字符的属性 , 类似这样。

func isBlank(_ string: String) -> Bool {
    for character in string {
        if !character.isWhitespace {
            return false
        }
    }
    return true
}

这样可以实现,但是更优雅的是,使用 allSatisfy 的方法。

"Hello".isBlank        // false
"   Hello   ".isBlank  // false
"".isBlank             // true
" ".isBlank            // true
"\t\r\n".isBlank       // true
"\u{00a0}".isBlank     // true
"\u{2002}".isBlank     // true
"\u{2003}".isBlank     // true

如何判断Optional的字符串

option类型字符串的判断,也可以写得很优雅。

extension Optional where Wrapped == String {
    var isBlank: Bool {
        return self?.isBlank ?? true
    }
}
var title: String? = nil
title.isBlank            // true
title = ""
title.isBlank            // true
title = "  \t  "
title.isBlank            // true
title = "Hello"
title.isBlank            // false

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

O2O

O2O

张波 / 机械工业出版社华章公司 / 2013-2-5 / 49.00元

2012年是O2O元年,无论是成熟的传统企业、如火如荼的电子商务企业,还是以电信、银行、娱乐等为代表的与民生相关的企业,都在探索和践行O2O模式,因为O2O中孕育着极富创新性的商业模式。本书是国内首部O2O方面的著作,不仅宏观上叙述了O2O的概念、在各行业的应用情况,以及未来的发展趋势,而且还系统阐述和解读了各行业如何借助O2O来顺利实现商业模式的转型和升级;不仅极富洞察力地分析了O2O在营销、支......一起来看看 《O2O》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码