美文网首页iOS 开发 Objective-C
Swift Language Guide5.2 第一篇:基础篇之

Swift Language Guide5.2 第一篇:基础篇之

作者: 望穿秋水小作坊 | 来源:发表于2020-03-10 17:09 被阅读0次

    Swift 是一门为 iOS,macOS,watchOS,和 tvOS app开发设计的全新语言。尽管如此,Swift 有许多部分对于有 C 和 Objective-C 开发经验的人来说是非常熟悉的。

    对于C 语言和 Objective-C 的所有基本类型,Swift 都有它自己的版本。包括 Int 来自 integersDoubleFloat 来自 float-point values, Bool 来自 Boolean valuesString 来自 Textual data。Swift 也提供三个强大的集合类型 Array Set Dictionary

    像 C 语言一样,Swift 使用变量名来存储和引用值。Swift 还广泛使用了无法改变值的变量,这些被称之为常量,并且比 C 语言中的常量更加强大。在整个 Swift 中使用常量来代表不可以改变的值,可以让代码更加安全、意图更加清晰。

    除了这些熟悉的类型,Swift 还引入了Objective-C 没有的高级类型,比如 TuplesTuples可以让你创建和传递一组的值。你从一个function中使用 Tuple作为一个复合值返回多个值。

    Swift 也引入了Optional 类型,用于处理缺省值。 Optionals 表示“要么是一个具体值,要么不是一个值”。使用 Optionals类似于 Objective-C 对指针赋值 nil,但是可以是任何类型,不局限于 Classes。于 Objective-C 相比,Optionals不仅更加安全而且更具表达力,它是许多 Swift 最强大特性的核心。

    Swift 是一个类型安全的语言,这意味着 swift 可以帮助你更加容易弄清代码中类型可以用的值。如果你的代码需要一个String,类型安全帮你避免错误的传递一个 Int 值给它。同样的,类型安全帮助你避免偶然的传递一个 Optional String 给一个 non optional String。类型安全帮助你在开发中尽可能早的捕获和修正错误。

    Constants and Variables 常量和变量

    常量和变量关联一个名字(就像 maximumNumberOfLoginAttemptswelcomeMessage)具体来说(就像数字 10或者 字符串Hello)。常量的值一旦设定就不能被改变了,然而变量可以在将来设置成不同的值。

    Declaring Constants and Variables 声明常量和变量

    常量和变量使用之前必须被声明。你声明常量使用关键字let,声明变量使用关键字var。下面是一个例子,展示常量和变量是如何用于记录登陆尝试次数的:

    let maximumNumberOfLoginAttempts = 10
    var currentLoginAttempt = 0
    

    上面的代码可以这样解读:

    “声明一个新的常量叫做 maximumNumberOfLoginAttempts并且赋值为 10。然后,声明了一个新的变量叫做currentLoginAttempt并且初始化赋值为 0。”

    在这个例子中,最大运行尝试登陆次数是被声明成一个常量,因为最大次数永远不会被改变。而当前尝试登陆次数被声明成一个变量,因为这个值必须随着登陆失败递增。

    你可以在一行里面声明多个常量或者多个变量,用都好进行分割:

    var x = 0.0, y= 0.0, z = 0.0
    

    NOTE
    如果在你的代码里面储存的值是不需要改变的,请尽量使用 let 关键字来声明成常量。变量仅适用于存储需要改变的值。

    Type Annotations 类型注解

    当你声明一个常量或者变量的时候,你可以提供类型注解,更加清晰的表明这个常量或变量能存储的类型。类型注解的写法:在常量或变量名后加一个冒号,冒号后面跟一个空格,空格后面跟着类型注解的名称。

    下面的例子展示为变量 welcomeMessage进行注解,指明这个变量只能存储 String 类型的值:

    var welcomeMessage: String
    

    顿号可以解读为“什么的类型”,所以上面的代码可以这样解读:

    “声明一个变量叫welcomeMessage,它的值只能是 String 的类型。”

    welcomeMessage 变量现在可以被赋值任何 String 值而不会报错。

    welcomeMessage = "Hello"
    

    你可以在一行里面定义相同类型的多个变量,用逗号分隔,在最后的变量名称后面添上冒号并且加上类型注解。

    var red, green, blue: Double

    Naming Constants and Variables

    常量和变量的名字可以包含任何字符,包括 Unicode 字符:

    let π = 3.14159
    let 你好 = "你好世界"
    let 🐶🐮 = "dogcow"
    

    常量和变量名称不能包含空格字符,数学符号,箭头,专用的Unicode标量值或线条和框形图字符。 它们也不能以数字开头,尽管数字可能包含在名称中的其他位置。

    一旦你声明一个常量或变量为一个具体类型,你就不能用同一个名字再次声明了,或者用它存储其他类型的值,也不能把常量转改成变量,变量改成常量。

    NOTE
    如果你给一个常量或者变量命名为 Swift 的保留关键字,则用这个名字的时候,需要(`)这个字符去包裹它。尽管如此,尽量避免使用 Swift 的保留关键字,除非你别无选择了。

    你可以改变一个现有的变量用另一个兼容的值。在这个例子中friendlyWelcomeHello!改变成Bonjour!

    var friendlyWelcome = "hellow!"
    friendlyWelcome = "Bonjour!"
    

    和变量不同,常量的值在设定之后是不能被改变的。尝试改变他将会导致代码在编译的时候报错:

    let languageName = "Swift"
    language = "Swift++"
    // This is a compile-time error: languageName cannot be changed.
    
    Printing Constants and Variables 打印变量或者常量

    你可以利用 print(_:separator:terminator:)函数来打印变量或者常量的当前值

    print(friendlyWelcome)
    // Prints "Bonjour!"
    

    print(_:separator:terminator:) 是一个全局函数会将结果打印的合适的地方输出。在 Xcode 中,print(_:separator:terminator:) 函数会将结果输出到 Xcode 的 “console”面板中。separatorterminator都有默认值,所以你能省略它们之间调用函数。默认情况下,这个打印函数会在末尾加上换行符。

    Swift 使用插值法将一个常量或者变量的名称作为较长字符串中的占位符,并提示 Swift 使用当前常量或者变量的值去替换它们。用()开括号包裹常量或变量,并在开括号前面加上\反斜杠.

    print("The current value of friendlyWelcome is \(friendlyWelcome)")
    // Prints "The current value of friendlyWelcome is Bonjour!"
    

    相关文章

      网友评论

        本文标题:Swift Language Guide5.2 第一篇:基础篇之

        本文链接:https://www.haomeiwen.com/subject/fjoidhtx.html