Swift - 基本语法

  • 简述

    我们已经在设置环境时看到了一个Swift 4程序。让我们从以下内容重新开始Hello, World! 为 OS X playground 创建的程序,其中包括 import Cocoa 如下图所示 -
    
    /* My first program in Swift 4 */
    var myString = "Hello, World!"
    print(myString)
    
    如果您为 iOS Playground 创建相同的程序,那么它将包括 import UIKit 程序将如下所示 -
    
    import UIKit
    var myString = "Hello, World!"
    print(myString)
    
    当我们使用适当的操场运行上述程序时,我们将得到以下结果 -
    
    Hello, World!
    
    现在让我们看看 Swift 4 程序的基本结构,这样您就可以轻松理解 Swift 4 编程语言的基本构建块。
  • 在 Swift 4 中导入

    您可以使用 import将任何 Objective-C 框架(或 C 库)直接导入 Swift 4 程序的语句。例如,上面的import cocoa 语句使构成所有 OS X 开发层的所有 Cocoa 库、API 和运行时在 Swift 4 中可用。
    Cocoa 是用 Objective-C 实现的,它是 C 的超集,因此很容易将 C 甚至 C++ 混合到您的 Swift 4 应用程序中。
  • Swift 4 中的令牌

    Swift 4 程序由各种标记组成,标记可以是关键字、标识符、常量、字符串字面量或符号。例如,以下 Swift 4 语句由三个标记组成 -
    
    print("test!")
    The individual tokens are:
    print("test!")
    
  • 评论

    注释就像是 Swift 4 程序中的帮助文本。它们被编译器忽略。多行注释以 /* 开头并以字符 */ 终止,如下所示 -
    
    /* My first program in Swift 4 */
    
    多行注释可以嵌套在 Swift 4 中。以下是 Swift 4 中的有效注释 -
    
    /* My first program in Swift 4 is Hello, World!
    /* Where as second program is Hello, Swift 4! */ */
    
    单行注释在注释的开头使用 // 编写。
    
    // My first program in Swift 4
    
  • 分号

    Swift 4 不要求您在代码中的每个语句后键入分号 (;),尽管它是可选的;如果你使用分号,那么编译器不会抱怨它。
    但是,如果在同一行中使用多个语句,则需要使用分号作为分隔符,否则编译器会引发语法错误。你可以写上面的Hello, World! 程序如下 -
    
    /* My first program in Swift 4 */
    var myString = "Hello, World!"; print(myString)
    
  • 身份标识

    Swift 4 标识符是用于标识变量、函数或任何其他用户定义项的名称。标识符以字母 A 到 Z 或 a 到 z 或下划线 _ 开头,后跟零个或多个字母、下划线和数字(0 到 9)。
    Swift 4 不允许在标识符中使用特殊字符,例如 @、$ 和 %。斯威夫特 4 是一个case sensitive编程语言。因此,Manpower 和 manpower 在 Swift 4 中是两个不同的标识符。以下是一些可接受的标识符示例 -
    
    Azad        zara   abc   move_name   a_123
    myname50    _temp  j     a23b9       retVal
    
    要将保留字用作标识符,您需要在其前后加上反引号 (`)。例如,class 不是有效的标识符,但`class` 有效。
  • 关键词

    以下关键字在 Swift 4 中保留。这些保留字不能用作常量或变量或任何其他标识符名称,除非它们用反引号转义 -

    声明中使用的关键字

    Class deinit Enum extension
    Func import Init internal
    Let operator private protocol
    public static struct subscript
    typealias var

    语句中使用的关键字

    break case continue default
    do else fallthrough for
    if in return switch
    where while

    表达式和类型中使用的关键字

    as dynamicType false is
    nil self Self super
    true _COLUMN_ _FILE_ _FUNCTION_
    _LINE_

    在特定上下文中使用的关键字

    associativity convenience dynamic didSet
    final get infix inout
    lazy left mutating none
    nonmutating optional override postfix
    precedence prefix Protocol required
    right set Type unowned
    weak willSet
  • 空格

    仅包含空格(可能带有注释)的行被称为空行,Swift 4 编译器会完全忽略它。
    空格是 Swift 4 中用来描述空格、制表符、换行符和注释的术语。空格将语句的一部分与另一部分分开,并使编译器能够识别语句中的一个元素(例如 int)结束和下一个元素开始的位置。因此,在以下声明中 -
    
    var age
    
    之间必须至少有一个空格字符(通常是一个空格) varage以便编译器能够区分它们。另一方面,在以下声明中 -
    
    int fruit = apples + oranges   //get the total fruits
    
    水果和 = 之间或 = 和苹果之间不需要空格字符,尽管您可以自由包含一些以提高可读性。
    运算符两侧的空间应该相等,例如。
    
    int fruit = apples +oranges    //is a wrong statement
    int fruit = apples + oranges   //is a Correct statement
    
  • 字面量

    字面量是整数、浮点数或字符串类型值的源代码表示形式。以下是字面量的例子 -
    
    92               // Integer literal
    4.24159          // Floating-point literal
    "Hello, World!"  // String literal
    
  • 用 Swift 打印

    要快速打印任何内容,我们有 'print' 关键字。
    打印具有三种不同的属性。
    Items – 要打印的项目
    Separator – 项目之间的分隔符
    Terminator – 行结束的值,让我们看一个示例和相同的语法。
    
    print("Items to print", separator: "Value " , terminator: "Value")
    // E.g. of print statement.
    print("Value one")
    // prints "Value one \n" Adds, \n as terminator and " " as separator by
    default.
    print("Value one","Value two", separator: " Next Value" , terminator: " End")
    //prints "Value one Next Value Value two End"
    
    在上面的代码中,第一个打印语句默认添加 \n ,换行符作为终止符,而在第二个打印语句中,我们将“End”作为终止符,因此它将打印“End”而不是 \n。
    我们可以根据我们的要求提供我们的自定义分隔符和终止符。