Swift 基本語法

==========框架

在上一章節中咱們已經講到如何建立 Swift 語言的 "Hello, World!" 程序。如今咱們來複習下。ide

若是建立的是 OS X playground 須要引入 Cocoa :函數

import Cocoa / 個人第一個 Swift 程序 / var myString = "Hello, World!" print(myString)工具

若是咱們想建立 iOS playground 則須要引入 UIKit :post

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

執行以上程序,輸出結果爲:編碼

Hello, World! code

以上代碼即爲 Swift 程序的基本結構,接下來咱們來詳細說明結構的組成部分。ip


Swift 引入

咱們能夠使用 import 語句來引入任何的 Objective-C 框架(或 C 庫)到 Swift 程序中。例如 import cocoa 語句導入了使用了 Cocoa 庫和API,咱們能夠在 Swift 程序中使用他們。ci

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()

相關文章
相關標籤/搜索