基於cocoa 和cocoa touch框架
採用objective-c的命名引數以及動態物件模型。
支援**預覽
可以用於開發一套完整的作業系統。
匯入包 直接 import 不需要加 #
var 關鍵字,表示定義變數的關鍵字(型別自動追蹤) ;
let 關鍵字,常量單行注釋 // 多行注釋 /* */
print(「直接輸出 ,不需要」);
swift 是強語法,定義變數必須指定乙個值,不指定就報錯,不允許風險問題存在
class是保留字,但不是乙個有效的識別符號(不要使用就對了)
在宣告中使用關鍵字
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
lazy
left
mutating
none
nonmutating
optional
overide
postfix
precedence
prefix
protocol
required
right
settype
unowned
weak
willset
空格僅包含空格
字面量
都是以 大寫開頭int : int32 int64 整數
uint : 無符號整數 ,同樣有 uint32 uint64
float 表示32位浮點數
double 表示64位浮點數
bool 代表布林值
string 這是有序的字元集合 eg: 「hello world」
character 這是乙個單字元的字串, eg: 「a」
optional 這表示可以容納乙個值活沒有任何值的變數
32位平台上 int大小與int32 的大小相同
繫結值int8 1byte -127~127
uint8 1byte 0~255;
可以使用簡單活 unicode 字元來命名變數。var name :string = 「joker」4. var 人名 = 「joker」
5. var ❀ = 「花」
var high : datatype =169
列印變數
print(「my name is (name),and my age is (age)」)
optional
宣告 可選型別
> var name : string? //問號前 沒有空格
> name ="joker"
> print(name) // ====>optional("joker")
> //可選型別使用資料值的時候,需要進行 解包
> print (name!) // 用 ! 強制解包 ====》 joker
> var name : string! //使用 ! 宣告變數為可選型別,可以自動解包
> print(name) ===> joker
可選繫結,輸出的時候 如果 為 null值 ,則直接不輸出該句。
let 宣告
let name = "joker"
let age: int=10
let weight : float =169.5
就是 c語言中的 常量建立集合布林值》 true false nil
範圍值(a…b) a~b 包含a 和b
(a…if …else…
switch
if 條件表示式 else
switch color
for var i=0 ; i<10 ; i++
var number =10;
while number <20
repeat while number <20
元組for index in 1...10
//不需要 index值時 可以用 _ 代替
for _ in 1..10
集合就是 set型別的物件,表示的是一組無序的相同型別的資料集for (myindex,myvalue) in array3.enumerate()
// 使用set的建構函式,構建乙個集合物件
var mytest1 =set(); //構建乙個空的集合物件。
mytest1 = [1,4,6,7,8]; //儲存時 無序的。
var mysets ; set = [12,3,5,7]
宣告乙個字典型別的變數
var dic2: [int:int] = [1:10,2:30,3:30]
var dic3= dictionary()
dic3=["key1":"value1"]
訪問字典
dic["key1"]
遍歷字典
for (key,value) in dic3
構造體型別
var studentmessage: (string,string) = ("joker","beijing")
studentmessage.0 ==>>joker
studenmessage.1 ====>> beijing
c 語言 enum weekday使用swift :
enum weekday
var birthday: weekday = weekday.mon
switch birthday
關聯值
enum student
var xiaoming =student.smallstudent("one","two","three")
switch xiaoming
原始值
enum color: int
color(rawvalue:10) ==>> yellow
使用 func 關鍵 開始定義函式
func func1()
func func2()-> string
func func3(num1:int,num2 int)-> int
//使用 元組 作為函式的返回值型別
func func4()->(int,int)
//呼叫
let result =func4
result.0 ===> 5
result.1 ===> 7
允許函式定義標籤
func fun6(first num1:int,num2:int,num3:int) -> int
// 一般預設第乙個形參變數名時不作為標籤出現的,如果你希望第乙個引數也有標籤,可以在形參變數名之前加乙個標籤
func6(first:3,num2:6,num3:9)
i/o 引數 ***inout *** 關鍵字
func muswap(num1:int,num2:int)
var a= 9
var b=100
myswap($a,num2:&b)
print("a= \(a) b= \(b)")
===> a =100 b= 9// 使用 函式型別, 第一型別 int float double
func mysum(num1: int,num2:int) ->int
var action : (int, int) -> int = mysum
// 可以使用 action 替代函式 mysum
action(1,2)
// 可以使用型別 作為函式的引數傳遞
func thirdnumsum(youraction:(int,int) -> int,num1:int, num2:int ,num3:int)->int
swift通知快速建立
相關鏈結 直接監控系統方法 var backgroundobserver nsobjectprotocol?object必須是nil,否則貌似沒反應 backgroundobserver noticecenter.addobserver forname nsnotification.name pri...
Swift實現快速排序
思想 從陣列中隨機抽取乙個數 一般是取末尾的乙個數 然後遍歷一遍陣列,把比這個數小的放在左邊,比這個數大的放在右邊 排好序後的陣列左右兩邊也做和這個操作,最終條件到剩下乙個數就終止,這時候就有序了。下面 丟進去的陣列是inout直接被改變的,而不是結果返回型的,直接用low和high操作這個陣列就行...
swift語言快速入門(一)
此文章只是記錄本人學習swift語言以來的自我感觸和開發經驗,可能有的知識點有遺漏 本人覺得不重要 務求看得人可以快速了解這門語言 1.常量和變數 常量 let a 5 變數 var a 5 經驗 let 宣告為常量,var 宣告為變數。2.資料型別 bool 判斷 true,false int 整...