日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Swift 基本語法

 小飛苑 2017-01-02

在上一章節(jié)中我們已經(jīng)講到如何創(chuàng)建 Swift 語言的 "Hello, World!" 程序?,F(xiàn)在我們來復(fù)習(xí)下。

如果創(chuàng)建的是 OS X playground 需要引入 Cocoa :

import Cocoa

/* 我的第一個(gè) Swift 程序 */
var myString = "Hello, World!"

print(myString)

如果我們想創(chuàng)建 iOS playground 則需要引入 UIKit :

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

執(zhí)行以上程序,輸出結(jié)果為:

Hello, World! 

以上代碼即為 Swift 程序的基本結(jié)構(gòu),接下來我們來詳細(xì)說明結(jié)構(gòu)的組成部分。


Swift 引入

我們可以使用 import 語句來引入任何的 Objective-C 框架(或 C 庫)到 Swift 程序中。例如 import cocoa 語句導(dǎo)入了使用了 Cocoa 庫和API,我們可以在 Swift 程序中使用他們。

Cocoa 本身由 Objective-C 語言寫成,Objective-C 又是 C 語言的嚴(yán)格超集,所以在 Swift 應(yīng)用中我們可以很簡單的混入 C 語言代碼,甚至是 C++ 代碼。


Swift 標(biāo)記

Swift 程序由多種標(biāo)記組成,標(biāo)記可以是單詞,標(biāo)識(shí)符,常量,字符串或符號(hào)。例如以下 Swift 程序由三種標(biāo)記組成:

print("test!")
標(biāo)記是:單詞、符號(hào)
print
(
   "test!"
)

注釋

Swift的注釋與C語言極其相似,單行注釋以兩個(gè)反斜線開頭:

//這是一行注釋

多行注釋以/*開始,以*/結(jié)束:

/* 這也是一條注釋,
但跨越多行 */

與 C 語言的多行注釋有所不同的是,Swift 的多行注釋可以嵌套在其他多行注釋內(nèi)部。寫法是在一個(gè)多行注釋塊內(nèi)插入另一個(gè)多行注釋。第二個(gè)注釋塊封閉時(shí),后面仍然接著第一個(gè)注釋塊:

/* 這是第一個(gè)多行注釋的開頭

/* 這是嵌套的第二個(gè)多行注釋 */

這是第一個(gè)多行注釋的結(jié)尾 */

多行注釋的嵌套是你可以更快捷方便的注釋代碼塊,即使代碼塊中已經(jīng)有了注釋。


分號(hào)

與其它語言不同的是,Swift不要求在每行語句的結(jié)尾使用分號(hào)(;),但當(dāng)你在同一行書寫多條語句時(shí),必須用分號(hào)隔開:

import Cocoa
/* 我的第一個(gè) Swift 程序 */
var myString = "Hello, World!"; print(myString)

標(biāo)識(shí)符

標(biāo)識(shí)符就是給變量、常量、方法、函數(shù)、枚舉、結(jié)構(gòu)體、類、協(xié)議等指定的名字。構(gòu)成標(biāo)識(shí)符的字母均有一定的規(guī)范,Swift語言中標(biāo)識(shí)符的命名規(guī)則如下:

  • 區(qū)分大小寫,Mynamemyname是兩個(gè)不同的標(biāo)識(shí)符;

  • 標(biāo)識(shí)符首字符可以以下劃線(_)或者字母開始,但不能是數(shù)字;

  • 標(biāo)識(shí)符中其他字符可以是下劃線(_)、字母或數(shù)字。

例如: userName、User_Name、_sys_val、身高等為合法的標(biāo)識(shí)符,而2mail、room#和class為非法的標(biāo)識(shí)符。

注意:Swift中的字母采用的是Unicode編碼[1]。Unicode叫做統(tǒng)一編碼制,它包含了亞洲文字編碼,如中文、日文、韓文等字符,甚至是我們在聊天工具中使用的表情符號(hào)

如果一定要使用關(guān)鍵字作為標(biāo)識(shí)符,可以在關(guān)鍵字前后添加重音符號(hào)(`),例如:


關(guān)鍵字

關(guān)鍵字是類似于標(biāo)識(shí)符的保留字符序列,除非用重音符號(hào)(`)將其括起來,否則不能用作標(biāo)識(shí)符。關(guān)鍵字是對(duì)編譯器具有特殊意義的預(yù)定義保留標(biāo)識(shí)符。常見的關(guān)鍵字有以下4種。

與聲明有關(guān)的關(guān)鍵字

class deinit enum extension
func import init internal
let operator private protocol
public static struct subscript
typealias var

與語句有關(guān)的關(guān)鍵字

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

表達(dá)式和類型關(guān)鍵字

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

在特定上下文中使用的關(guān)鍵字

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對(duì)空格的使用有一定的要求,但是又不像Python對(duì)縮進(jìn)的要求那么嚴(yán)格。

在Swift中,運(yùn)算符不能直接跟在變量或常量的后面。例如下面的代碼會(huì)報(bào)錯(cuò):

let a= 1 + 2

錯(cuò)誤信息是:

error: prefix/postfix '=' is reserved

意思大概是等號(hào)直接跟在前面或后面這種用法是保留的。

下面的代碼還是會(huì)報(bào)錯(cuò)(繼續(xù)注意空格):

let a = 1+ 2

錯(cuò)誤信息是:

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

這是因?yàn)镾wift認(rèn)為到1+這個(gè)語句就結(jié)束了,2就是下一個(gè)語句了。

只有這樣寫才不會(huì)報(bào)錯(cuò):

let a = 1 + 2;  // 編碼規(guī)范推薦使用這種寫法
let b = 3+4 // 這樣也是OK的

Swift 字面量

所謂字面量,就是指像特定的數(shù)字,字符串或者是布爾值這樣,能夠直接了當(dāng)?shù)刂赋鲎约旱念愋筒樽兞窟M(jìn)行賦值的值。比如在下面:

42                 // 整型字面量
3.14159            // 浮點(diǎn)型字面量
"Hello, world!"    // 字符串型字面量
true               // 布爾型字面量

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多