---------------------Swift簡介----------------------
一、神馬是Swift?
1、Swift 是蘋果公司2014 年在WWDC(蘋果開發者大會)上發布的全新編程語言。
2、Swift在天朝翻譯為“雨燕”,其Logo如下圖
3、Swift跟Objective-C一樣,可以用于開發iOS、Mac應用程序。
4、蘋果公司從2010年7月開始設計Swift語言,耗時4年打造。(據說其核心代碼是由一個人寫的)
二、Swift的語法特點
1、從它的語法中能看到Objective-C、JavaScript、C#、Python等語言的影子。其借鑒了Objective-C、JavaScript、C#、Python等語言的優點。
2、同時具備編譯型語言的高性能和腳本語言的靈活交互性。(編譯型語言:就是要保證我們所寫的代碼全部編譯通過,程序才能執行;腳本語言:你寫的代碼對一行執行一行,比如你寫了10行,第9行有Bug,那么前8行是可以執行成功的)
3、蘋果公司為什么要設計Swift語言?其目的是想取代Objective-C,Swift言語讓編程更簡單,讓生活更美好。
三、使用Swift語言進行開發的條件是什么?
1、Xcode版本>=6.0,Mac系統版本>=10.9.3
2、Swift語言自從發布之后,備受關注。據說發布當天Xcode6 beta 下載量突破1400萬次,官方電子書教程下載量37萬次。
3、Swift的首席架構師:Chris Lattner
LLVM 項目的主要發起人與作者之一
Clang 編譯器的作者
他現在是蘋果公司『開發者工具』部門的主管
領導 Xcode、Instruments 和編譯器團隊
從 2010 年 7 月開始主導開發 Swift 編程語言
Swift的大部分基礎架構均由他一人完成
綜上所述, Swift是由牛叉的公司牛叉的人設計的牛叉編程語言, 真正的天生驕傲!
---------------------Swift常量與變量----------------------
一、Swift, Hello, World!
1、打印Hello, World!到控制臺,代碼如下圖:
就一行?對,你沒看錯。
2、Swift的源文件拓展名是.swift
二、Swift和其它編程語言相比有哪些變化?
1、沒有main函數,其它編程語言認為mian函數是程序的入口,Swift認為程序是從上往下一行一行執行的,因此第一行代碼就是程序入口。
2、語句結束時不需要加”;”,當然若你喜歡也是可以加”;”
3、如果同一行有多個語句,則依然需要加”;”,不建議一行寫多條語句。
4、定義標識符時必須聲明該標識符是變量還是常量。
5、聲明標識符的格式:變量/常量關鍵字 名稱:數據類型(當然你也可以不寫數據類型,Swift會自動根據初始值確定其類型),示例如下:
// 聲明一個String類型的變量
var name:String = "android_ls"
// 聲明一個String類型的常量
let desc:String = "做android開發的iOS程序員"
若你不想按上面的格式聲明一個變量或者常量,可以采用下面這種寫法,示例如下:
// 聲明一個String類型的變量
var name = "android_ls"
// 聲明一個String類型的常量
let desc = "做android開發的iOS程序員"
6、Swift中的打印語句,如下:
print("Hello, World!")
三、Swift中的常量和變量
1、在定義一個標識符時必須明確說明該標識符是一個常量還是變量
2、使用關鍵字var來定義變量
3、使用關鍵字let來定義常量
4、先來看個例子,如下圖
結論:當一個字段定義為常量時是不可以修改的。
再看一個列子,示例代碼:
let button = UIButton()
button.frame = CGRectMake(10, 10, 100, 100)
button.backgroundColor = UIColor.redColor()
self.view.addSubview(button)
結論:定義為常量不可以修改的意思是,對象的引用不可以再指向其他對象,但是可以通過對象的引用修改其屬性值。
5、常量和變量的命名規則
基本上可以使用任何你喜歡的字符作為常量和變量名,示例如下:
變量和常量名的注意點:
不能包含數學符號(比如 +、-、*、/)
不能是關鍵字(比如 let、var)
不能以數字開頭(比如 23d)
……
----------------Swift字符串的簡單操作--------------
字符串
1、字符串是String
類型的數據,用雙引號""
包住文本內容
var name = "android_ls"
2、字符串的常見操作
使用+
做字符串的拼接
// 聲明一個String類型的變量
let name:String = "android_ls"
// 聲明一個String類型的常量
let desc:String = "做android開發的iOS程序員"
// 使用+做字符串的拼接
let result = name + desc
3、用反斜杠和小括號\()
做字符串插值(把常量、變量插入到字符串中)
var age = 28
var result = "android_ls,今年\(age)歲"
4、把整數轉換成字符串,使用\()
或者String()
var name = "android_ls"
var age = 28
var result = name + ",今年" + String(age) + "歲"
---------------Swift中常用的數據類型---------------
Swift中數據類型及用法
1、Swift中常用的數據類型有:
Int、Float、Double、String 、Bool、Character、Array、Dictionary、元組類型、可選類型
2、如何指定變量、常量的數據類型
在常量、變量名后面加:
類型名稱
var name:String = "android_ls"
var age:Int = 28
一般來說沒必要指定變量、常量的數據類型,在聲明常量、變量時賦予初始值,Swift可以自動推斷出這個變量、常量的數據類型。
我們來看下面這行代碼
var age = 28
Swift會推斷出age是Int
類型,因為28是個整數
3、Swift嚴格要求變量在使用前必須進行初始化,下面的代碼是錯誤的
Swift是強類型的語言,任何一個變量或者常量都有明確的類型。
4、整數
整數分為兩種:
有符號(signed):正、負、零
無符號(unsigned):正、零
Swift提供了8、16、32、64的有符號和無符號整數(Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt16
),比如
UInt8
:8位無符號整型
Int8
:8位有符號整型獲取Int最值:(最大值、最小值)
var minValue = Int.min;
var maxValue = Int.max;
Int、UInt : 和平臺相關(默認,相當于OC的NSInteger)
在定義變量時,別總是在考慮有無符號、數據長度的問題,盡量使用Int,這樣可以保證代碼的簡潔和可復用性。
-
存儲范圍:
每種數據類型都有各自的存儲范圍,比如
Int8的存儲范圍:-128~127
UInt8的存儲范圍:0~255在Swift中,如果數值超過了存儲范圍,編譯器會直接報錯,下面的語句都會直接報錯。
如果數值超過了存儲范圍,編譯器會直接報錯 整數的四種表現形式:
十進制數:沒有前綴
let a1 = 10
二進制數:以0b
為前綴
let a2 = 0b1010
八進制數:以0o
為前綴
let a3 = 0o12
十六進制數:以0x
為前綴
let a4 = 0xA
5、浮點數
- Swift提供了兩種浮點數類型:
Float
: 32位浮點型
Double
: 64浮點型(默認) - 精確度:
Float
: 至少6小數
Double
: 至少15小數 - 浮點數的聲明
let a:Float = 3.232
let b:Double = 3.1415926
-
如果沒有明確的說明浮點數的類型,默認是
Double
類型的。
Float
和Double
類型的變量不能直接進行運算操作,如下
```Float ```和```Double```類型的變量不能直接進行運算操作 浮點數的表現形式:
十進制(沒有前綴)
沒有指數:let a1 = 12.7 // 12.7
有指數:let a2 = 0.127e2 // 12.7
0.127e2 = 0.127 * 10的二次方
MeN = M * 10的N次方
十六進制(以0x為前綴,且一定有指數)
let a3 = 0xA // 10
let a4 = 0xAp1 // 10 * 2的1次方 == 10 * 2
0xMpN = 0xM * 2N次方
6、數字格式(增加額外的0和下劃線并不會影響數值原來的大小
)
數字可以增加額外的格式,使其更容易閱讀
- 可以增加額外的
0
let money1 = 001988
let money2 = 001988.000
- 可以增加額外的
_
,以增加其可讀性
let money3 = 100_0000
let money4 = 100_000_000
示例效果圖如下:
7、Swift中基本運算,數據類型轉換
整數和浮點數支持的運算:+、-、*、/、%
在進行基本運算時必須保證類型一致,否則會出錯。
8、類型別名
- 使用
typealias
關鍵字定義類型的別名
// 給Int類型起個別名叫BoloInt
typealias BoloInt = Int
原類型名稱能用在什么地方,別名就能用的什么地方
- 聲明變量、常量
var a:BoloInt = 23
let b:BoloInt = 27
- 獲得類型的最值
let minValue = BoloInt.min
- 類型轉換
let result = BoloInt(3.1416)