swift 2.2 语法 (上)
生活随笔
收集整理的這篇文章主要介紹了
swift 2.2 语法 (上)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言:
1.此文中的語法會根據(jù)Swift的升級變動而更新。
2.如果需要請移步 -> swift2.2 語法(中)、swift 2.2語法(下)
Swift與OC中常見的區(qū)別
- 導入框架
OC:
#import <UIKit>#import "AFNetWorking.h"Swift:
import UIKit
定義標識符
OC:
int i = 0;Swift:
// 不可變標識符let i = 0 或 let i : Int = 0// 可變標識符var i = 0 或 var i : Int = 0
- ";"號的使用
- OC:每個語句后都必須加上;以示結尾
- Swift:
1.如果在一行中只有一條語句,那么語句結束時 ";" 號可以省略
2.如果一行中有多條,那么需要以 ";" 進行分割
常量和變量
- 在定義一個標識符時,必須明確告訴編譯器這個標識符是變量還是常量
- 常量,需要在定義最前面加上 'let',定義后不可修改
- 變量,需要在定義最前面加上 'var',定義后可以修改
- 格式:let/var 標識符名稱 : 類型 = 10;
- 格式:let/var 標識符名稱 : 類型 = 10;
- 常量使用注意
- 在開發(fā)中優(yōu)先使用常量,只有發(fā)現(xiàn)該標識符需要修改時,再改成變量(保證數(shù)據(jù)更加安全)
- 常量本質(zhì):指向的內(nèi)存地址不可修改,但通過內(nèi)存地址找到對應的對象,就可以修改對象內(nèi)部屬性
swift中數(shù)據(jù)類型
- 介紹
- Swift中的數(shù)據(jù)類型也有:整型/浮點型/對象類型/結構體類型等
- 整型
- 有符號
- Int8 : 有符號8位整型
- Int16 : 有符號16位整型
- Int32 : 有符號32位整型
- Int64 : 有符號64位整型
- Int : 和平臺相關(默認,相當于OC的NSInteger)
- 無符號
- UInt8 : 無符號8位整型
- UInt16 : 無符號16位整型
- UInt32 : 無符號32位整型
- UInt64 : 無符號64位整型
- UInt : 和平臺相關(常用,相當于OC的NSUInteger)(默認)
- 浮點型
- Float : 32位浮點型
- Double : 64浮點型(默認)
- 有符號
- 整型
- Swift中的數(shù)據(jù)類型也有:整型/浮點型/對象類型/結構體類型等
類型推導
- Swift是強類型語言
- Swift中任何一個標識符都有明確的類型
- 注意:
- Swift中在定義一個標識符時,有直接給該標識符進行賦值,那么標識符后面的類型可以省略(因為類型推導會自動根據(jù)后面賦值的類型推導出前面標識符的類型)
- 在Swift中可以通過option + 鼠標左鍵,可以查看某個標識符的類型
基本運算
- 在Swift中,不同類型的數(shù)據(jù)類型之間不能進行運算(因為Swift中沒有隱式轉換)
- 如果數(shù)據(jù)類型不一致,就需要轉化數(shù)據(jù)類型,使類型一致
判斷分支
- 介紹
- 判斷分支指if/switch/三目運算符等判斷語句
- 通過判斷分支可以控制程序的執(zhí)行順序
- if判斷
- if后面的()可以省略掉
- 在Swift中,判斷語句必須有明確的真假
- if后面的判斷句沒有非0(nil)即真概念
- if后面的判斷句必須明確真假(Bool) --> true/false
- 三目運算符(和OC一樣,沒有別的區(qū)別)
- guard(守衛(wèi))使用
- guard是Swift2.0新增的語法
- 它與if語句非常類似,設計的目的是提高程序的可讀性
- guard語句必須跟上else,{}內(nèi)必須跟上break/continue/return
- switch判斷
- 介紹
- 蘋果對Switch進行了大大的增強,使其擁有其他語言沒有的特性
- 使用
- 基本用法和OC一樣
- switch后面的()可以省略
- case后的break可以省略(默認會自動填補break)
- 一個case判斷中,可以判斷多個值(值之間用 “,” 分隔)
- 如果希望出現(xiàn)case穿透,可以使用關鍵字fallthrough
- switch支持多種數(shù)據(jù)類型(包含浮點型、字符串類型)
- switch支持區(qū)間判斷
- 常見的區(qū)間
1.半開半閉區(qū)間:0..<10(表示0~9)
2.閉區(qū)間:0...10(表示0~10)
- 常見的區(qū)間
- 介紹
循環(huán)
- 循環(huán)是開發(fā)中必不可少的,常見循環(huán)有:for/while/do...while
- for循環(huán)
- for后面的()可以省略
- for后面的()可以省略
- while循環(huán)
- while的判斷句必須有真假(沒有非0即真概念)
- while后面的()可以省略
- do...while循環(huán)
- 使用repeat關鍵字代替了do
- 使用repeat關鍵字代替了do
- for循環(huán)
字符串
- OC和swift中字符串的區(qū)別
- OC中字符串類型為NSString,在swift中字符串類型為String
- OC中字符串用@“”包裝,swift中字符串用“”包裝
- 使用String原因
- String是一個結構體,性能較高;NSString是一個OC對象,性能較差
- String支持直接遍歷
- swift提供了String和NSString間無縫轉換
定義
- 不可變字符串
- 可變字符串
- 不可變字符串
- 使用
- 獲取字符串長度
- 遍歷字符串
- 字符串拼接
- 字符串和其它數(shù)據(jù)類型拼接
- 字符串的格式化
- 如:時間
- 如:時間
- 字符串截取方式
- 常用方式:String轉換成NSString后再截取(簡便)
- 方式二:使用swift原生截取方式
- 常用方式:String轉換成NSString后再截取(簡便)
- 獲取字符串長度
數(shù)組
- 介紹
- 數(shù)組(Array)是一串有序的由相同類型元素構成的集合
- 數(shù)組中的集合元素是有序的,可以重復出現(xiàn)
- swift中的數(shù)組
- swift數(shù)組是一個泛型集合,類型是Array,
- 初始化數(shù)組
- 數(shù)組分為可變數(shù)組和不可變數(shù)組
- 使用let修飾的數(shù)組是不可變數(shù)組
- 使用var修飾的數(shù)組是可變數(shù)組
注意:在swift中任意類型一般不用NSObject而會使用AnyObject
聲明數(shù)組的簡便寫法
注意:聲明的數(shù)組需要初始化才能使用,數(shù)組類型一般都是在聲明的同時進行初始化
- 對聲明的數(shù)組進行初始化
- 數(shù)組的增、刪、改、查
- 數(shù)組的遍歷
- 數(shù)組合并
注意:只有相同類型的數(shù)組才能合并
- 數(shù)組分為可變數(shù)組和不可變數(shù)組
字典
- 介紹
- 字典由鍵(key)集合和值(value)集合兩部分構成
- 鍵集合不能有重復元素,而值集合可以重復,每一個鍵對應一個值
- 字典可以按照某個鍵來訪問對應的元素
- swift字典類型為Dictionary,和數(shù)組一樣死個`泛型集合``
- 初始化字典
- swift的字典分為可變和不可變字典2種
- 使用let修飾的字典是不可變字典
- 使用var修飾的字典是可變字典
- 聲明字典
注意:和數(shù)組一樣,聲明的字典也需要初始化值后才可使用
- 聲明的字典需要初始化才能使用,字典類型一般是在聲明的同時進行初始化
- 字典的增刪改查
- 字典遍歷
- 字典合并
注意:只有字典內(nèi)容類型相同的字典才可合并
- swift的字典分為可變和不可變字典2種
元組
- 元組是Swift中特有的,OC中并沒有相關類型
- 元組是一種數(shù)據(jù)結構,類似于數(shù)組或者字典
- 可以用于定義一組數(shù)據(jù)
- 多個值組合而成的復合值。元組中的值可以是任意類型,而且每一個元素的類型可以不同
- 組成元組類型的數(shù)據(jù)稱為“元素”
定義元組
// 方法一:基本寫法(格式:(元素,元素) 數(shù)據(jù)類型不限) let personInfo1 = ("老王", 35, 1.80, "laoWang")// 方法二:在上面方法的基礎給元素定義名稱 let personInfo2 = (name:"老王", age:35, height:1.80, EnglishName:"laoWang")// 方法三:先定義元素名,在設置值 let (name, age, height, EnglishName) = ("老王", 35, 1.80, "laoWang")// 方法四:明確有幾個元素并且確定類型 var personInfo3 : (Int, String) = (0, "老王")元組操作
// 通過下標或者別名讀取值 personInfo1.0personInfo2.namename
可選類型
- 可選類型作用:
- 在OC中,如果一個變量暫停不適用,可以賦值為0(基本屬性類型)或賦值為空(對象類型)
- 在swift中,nil被定義為一個特殊的類型,因為和真是的類型不匹配是不能賦值的(強類型語言特性)
- 為了在開發(fā)中賦值為nil,畢竟很經(jīng)常用到,所以推出了可選類型
- 可選類型的取值為:
- 空值
- 有值
- 可選類型定義
- 基本寫法(不常用)
- 糖語法(推薦)
- 基本寫法(不常用)
- 可選類型簡單使用
注意:
1.如果可選類型為nil(為空),強制取出其中的值(強制解包),會出錯,所以解包前需要進行判斷
2.為了使用方便,解包會以可選綁定的形式實現(xiàn)
- 可選類型重要性(讓代碼邏輯更加嚴謹)
類型轉化
- 類型轉化符號
- as:將示例轉成某一類型
- as?:判斷是否有值,有則轉換,沒有則不轉換(推薦)
- as!:不判斷是否有值,直接轉換(不安全)
- is:用來判斷一個示例是否是某一種類型
- as:將示例轉成某一類型
轉載于:https://www.cnblogs.com/miaomiaoshen/p/5496036.html
總結
以上是生活随笔為你收集整理的swift 2.2 语法 (上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 需求分析、概要设计
- 下一篇: 【PHP】月末・月初の出力方法