微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift String

初始化空字符串

为了构造一个很长的字符串,可以创建一个空字符串作为初始值。可以将空的字符串字面量赋值给变量,也可以初始化一个新的String实例:
   
   
  1. var emptyString = "" // 空字符串字面量
  2. var anotherEmptyString = String() // 初始化 String 实例
  3. // 两个字符串均为空并等价。
您可以通过检查其Boolean类型的isEmpty属性来判断该字符串是否为空:
if emptyString.isEmpty {
  • println("什么都没有")
  • }
  • // 打印输出:"什么都没有"
  • 字符串可变性

    您可以通过将一个特定字符串分配给一个变量来对其进行修改,或者分配给一个常量来保证其不会被修改
    var variableString = "Horse"
  • variableString += " and carriage" // variableString 现在为 "Horse and carriage"
  • let constantString = "Highlander"
  • constantString += " and another Highlander" // 这会报告一个编译错误(compile-time error) - 常量不可以被修改
  • 注意:在 Objective-C 和 Cocoa 中,您通过选择两个不同的类( Nsstring 和 NSMutableString )来指定该字符串是否可以被修改,Swift中的字符串是否可以修改仅通过定义的是变量还是常量来决定,实现了多种类型可变性操作的统一。

    字符串是值类型

    Swift 的String类型是值类型。如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值。值类型在Structures and Enumerations Are Value Types中进行了说明。
    注意:其 Cocoa 中的 Nsstring 不同,当您在 Cocoa 中创建了一个 Nsstring 实例,并将其传递给一个函数/方法,或者赋值给一个变量,您永远都是传递或赋值同一个 Nsstring 实例的一个引用。除非您特别要求其进行值拷贝,否则字符串不会进行赋值新副本操作。
    Swift 认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值,其明确了无论该值来自于哪里,都是您独自拥有的。您可以放心您传递的字符串本身不会被更改。

    在实际编译时,Swift编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着您始终可以将字符串作为值类型的同时获得极高的性能

    使用字符(Characters)

    Swift 的String类型表示特定序列的字符值的集合。每一个字符值代表一个 Unicode 字符。您可利用 for-in 循环来遍历字符串中的每一个字符:
    for character in "Dog!" {
  • println(character)
  • // D
  • // o
  • // g
  • // !
  • for-in 循环在For Loops中进行了详细描述。
    另外,通过标明一个Character类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量:
    let yenSign: Character = "¥"

    计算字符数量

    通过调用全局countElements函数并将字符串作为参数进行传递可以获取该字符串的字符数量
    let unusualMenagerie = "Koala
    0
    0

    查看评论
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

    相关推荐