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