关于swift:Swift-基本语法

2次阅读

共计 2661 个字符,预计需要花费 7 分钟才能阅读完成。

==========

在上一章节中咱们曾经讲到如何创立 Swift 语言的 “Hello, World!” 程序。当初咱们来温习下。

如果创立的是 OS X playground 须要引入 Cocoa:

import Cocoa / 我的第一个 Swift 程序 / var myString = “Hello, World!” print(myString)

如果咱们想创立 iOS playground 则须要引入 UIKit :

import UIKit var myString = “Hello, World!” print(myString)

执行以上程序,输入后果为:

Hello, World!

以上代码即为 Swift 程序的根本构造,接下来咱们来具体阐明构造的组成部分。


Swift 引入

咱们能够应用 import 语句来引入任何的 Objective-C 框架(或 C 库)到 Swift 程序中。例如 import cocoa 语句导入了应用了 Cocoa 库和 API,咱们能够在 Swift 程序中应用他们。

Cocoa 自身由 Objective-C 语言写成,Objective-C 又是 C 语言的严格超集,所以在 Swift 利用中咱们能够很简略的混入 C 语言代码,甚至是 C++ 代码。


Swift 标记

Swift 程序由多种标记组成,标记能够是单词,标识符,常量,字符串或符号。例如以下 Swift 程序由三种标记组成:

print(“test!”)

以上语句由 3 个符号组成:单词 (print )、符号 (( )、字符串 (“test” )。

print (“test!”)


正文

Swift 的正文与 C 语言极其类似,单行正文以两个反斜线结尾:

// 这是一行正文

多行正文以 / 开始,以 / 完结:

/* 这也是一条正文,
但逾越多行 */

与 C 语言的多行正文有所不同的是,Swift 的多行正文能够嵌套在其余多行正文外部。写法是在一个多行正文块内插入另一个多行正文。第二个正文块关闭时,前面依然接着第一个正文块:

/* 这是第一个多行正文的结尾

/ 这是嵌套的第二个多行正文 / 这是第一个多行正文的结尾 */

多行正文的嵌套是你能够更快捷不便的正文代码块,即便代码块中曾经有了正文。


分号

与其它语言不同的是,Swift 不要求在每行语句的结尾应用分号 (;),但当你在同一行书写多条语句时,必须用分号隔开:

import Cocoa / 我的第一个 Swift 程序 / var myString = “Hello, World!”; print(myString)


标识符

标识符就是给变量、常量、办法、函数、枚举、构造体、类、协定等指定的名字。形成标识符的字母均有肯定的标准,Swift 语言中标识符的命名规定如下:

  • 辨别大小写,Myname 与 myname 是两个不同的标识符;
  • 标识符首字符能够以下划线(_)或者字母开始,但不能是数字;
  • 标识符中其余字符能够是下划线(_)、字母或数字。

例如:userName、User_Name、_sys_val、身高等为非法的标识符,而 2mail、room# 和 class 为非法的标识符。

留神:Swift 中的字母采纳的是 Unicode 编码 [1]。Unicode 叫做对立编码制,它蕴含了亚洲文字编码,如中文、日文、韩文等字符,甚至是咱们在聊天工具中应用的表情符号

如果肯定要应用关键字作为标识符,能够在关键字前后增加重音符号(`),例如:

let class = “Runoob”


关键字

关键字是相似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符。关键字是对编译器具备非凡意义的预约义保留标识符。常见的关键字有以下 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 空格

Swift 语言并不是像 C /C++,Java 那样齐全漠视空格,Swift 对空格的应用有肯定的要求,然而又不像 Python 对缩进的要求那么严格。

在 Swift 中,运算符不能间接跟在变量或常量的前面。例如上面的代码会报错:

let a= 1 + 2

错误信息是:

error: prefix/postfix ‘=’ is reserved

意思大略是等号间接跟在后面或前面这种用法是保留的。

上面的代码还是会报错(持续留神空格):

let a = 1+ 2

错误信息是:

error: consecutive statements on a line must be separated by ‘;’

这是因为 Swift 认为到 1 + 这个语句就完结了,2 就是下一个语句了。

只有这样写才不会报错:

let a = 1 + 2; // 编码标准举荐应用这种写法 let b = 3+4 // 这样也是 OK 的


Swift 字面量

所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,可能间接了当地指出本人的类型并为变量进行赋值的值。比方在上面:

42 // 整型字面量 3.14159 // 浮点型字面量 “Hello, world!” // 字符串型字面量 true // 布尔型字面量


打印输出

Swift 应用 print 函数打印输出:

print(“Runoob”) // 输入 Runoob

print 函数是一个全局函数, 残缺的函数签名为:

public func print(items: Any…, separator: String = default, terminator: String = default)

如果咱们想让其不换行输入, 只须要将最初一个参数赋值为空字符串即可:

for x in 0…10{print(“(x) “, terminator: “”) } print()

输入后果为:

0 1 2 3 4 5 6 7 8 9 10

如果你须要接管用户的输出能够应用 readLine():

let theInput = readLine()

正文完
 0