Swift基礎(chǔ)語法(一)常量變量、注釋注簿、運算符罐氨、數(shù)據(jù)類型的認(rèn)識

Swift基礎(chǔ)語法文章匯總

從最基礎(chǔ)的Swift語法的開啟Swift學(xué)習(xí),本篇學(xué)習(xí)常量變量滩援、數(shù)據(jù)類型、運算符塔嬉,以及注釋

因是自己的學(xué)習(xí)筆記玩徊,所以只會寫與OC/Java差異的部分

主要內(nèi)容:

  1. 常量
  2. 變量
  3. 數(shù)據(jù)類型
  4. 運算符
  5. 注釋
  6. print使用

1租悄、常量

簡單使用

//let 常量名:類型
//不限定數(shù)據(jù)類型
let l1 = "l1"
//限定數(shù)據(jù)類型
let l2: String = "l2"
//可以在運行時確定值,因此可以賦值變量,此時必須先確定數(shù)據(jù)類型
let l3:Int
var ii = 1
l3 = ii
print("wy:\(l1)--\(l2)--\(l3)")

說明

  • 可以先定義恩袱,之后再賦值
  • 與其他的語言相比泣棋,Swift可以不需要在編譯的時候就有值,可以在運行時才有值
  • 可以給常量賦值一個變量畔塔,此時必須先確定數(shù)據(jù)類型潭辈,以編譯時開辟空間
  • 在使用前必須賦值且只能賦值一次

2、變量

簡單使用

//變量名:類型
//不限定數(shù)據(jù)類型
var i = 1
//限定數(shù)據(jù)類型
var str: String = "2"
print("wy:\(i)--\(str)")

說明

  • 一般情況下編譯期會自動分析出類型澈吨,不需要自己寫
  • 如果我們想要限定類型就可以自己寫
  • 如果值的數(shù)據(jù)類型存在歧義編譯期無法識別就必須得自己寫把敢,比如輸入的值是小數(shù),浮點型默認(rèn)類型是Double谅辣,如果想要使用Float就需要自己寫了修赞。
  • 在使用前必須賦值且只能賦值一次

3、數(shù)據(jù)類型

在Swift中對數(shù)據(jù)類型的劃分有其特殊性桑阶,將所有的類型分為值類型和引用類型(指針類型)


數(shù)據(jù)類型.png
  • 引用類型只有類類型
  • 這里的枚舉和結(jié)構(gòu)體都屬于值類型
  • 結(jié)構(gòu)體類型的非集合類型包括整型柏副、布爾型、浮點型蚣录、字符串割择,集合類型包括Array、Set萎河、Dictionary荔泳。

整型:

  • 整型種類有:Int8、Int16公壤、Int32换可、Int64、UInt8厦幅、UInt16沾鳄、UInt32、UInt64
  • 就像是GLSL語法中的數(shù)據(jù)類型确憨。后面的數(shù)字可以說明占用內(nèi)存字節(jié)的大小
  • Int默認(rèn)值在64bit平臺上是8個字節(jié)译荞,在32bit平臺上是4個字節(jié)

浮點類型

  • 和其他語言一樣,如果是Double類型休弃,寫成小數(shù)類型就默認(rèn)是Double
  • 如果是Float類型吞歼,需要明確Float類型

布爾類型

  • 值是true和false,這個與Java一樣

String塔猾、Character

  • 默認(rèn)用""寫的就是String篙骡,與OC不一樣,不需要加@
  • 如果需要字符類型,就需要明確Character

集合Array/Set/Dictionary

  • 和Java一樣糯俗,只是不需要限定類型尿褪,用[]設(shè)置就可以

簡單使用

//這里的Float、Character必須要加數(shù)據(jù)類型得湘,其他的可加可不加
let a1: Int = 1
let a2: Float = 2.0
let a3: Bool = true
let a4: String = "a4"
let a5: Character = "5"
let array6:Array = [1,2,3]
let set7:Set = [4,5,5,5]
let dictionary: Dictionary = ["age":"18","name":"wy"]//類型要注意匹配

類型轉(zhuǎn)換

let a7: Int = 1
let a8: Double = Double(a7)
let a9: String = String(a7)
print(a9)
print(a8)

直接通過類型()來轉(zhuǎn)換


運行.png

元組

在Swift中有元組概念杖玲,元組主要是為了在特殊情況下得到的對象有不用的數(shù)據(jù)類型的成員的場景使用

創(chuàng)建

/*
 元組的創(chuàng)建
 */
//直接賦值
let http404Error = (404,"Not Found")
//帶有標(biāo)識符
let http202Status = (statusCode:200,desciption:"OK")

說明:

  • 元組可以存儲不同數(shù)據(jù)類型的成員
  • 存儲的元素可以直接存儲成員,也可以帶有標(biāo)識符用以獲取
  • 一旦聲明淘正,可以改值摆马,但不能添加/刪除元素
  • 不能更改已經(jīng)聲明的元素名稱
  • 已聲明的名稱可以省略,但未聲明名稱的元組鸿吆,不可添加名稱:

簡單使用

/*
 元組的使用
 */
//用下標(biāo)來獲取
print("The status code is \(http404Error.0)")
//用標(biāo)識符來獲取
print("The status code is \(http202Status.statusCode)")
//直接統(tǒng)一賦值給多個變量
let (statusCode,statusMessage) = http404Error
let (justTheStatusCode,_) = http202Status
let (statusCode2, statusMessage2): (Int, String) =  http404Error//正確
print(statusCode2,statusMessage2)

說明:

  • 獲取有兩種方式囤采,一種是直接通過下標(biāo)獲取,一種是通過標(biāo)識符來獲取
  • 也可以直接賦值給兩個變量/常量
  • 取值時可以指定類型伞剑,加強類型判斷
  • 不想處理的值斑唬,可以用下劃線_代替

和結(jié)構(gòu)體的區(qū)別:

  • 結(jié)構(gòu)體可以存儲函數(shù),元組不可以
  • 結(jié)構(gòu)體只能直接存儲成員黎泣,元組可以存儲帶有標(biāo)識符的成員

4恕刘、注釋

也是多行注釋、單行注釋抒倚、文本注釋褐着,和其他語言都是一樣的

注意:

  • 多行注釋可以嵌套
  • Playground中的注釋可以用MarkUp語法,如果平常寫博客應(yīng)該會很清楚托呕,這樣增加了注釋的可讀性

文檔注釋使用

/// 求和【概述】
///
/// 將兩個整數(shù)相加【更詳細(xì)的描述】
/// - Parameters:
///   - v1: v1 第一個整數(shù)
///   - v2: v2 第二個證書
/// - Returns: 2個整數(shù)的和
///
/// - Note : 傳入2個證書即可【批注】
func sum(v1: Int,v2: Int) -> Int {
    v1 + v2
}
文檔注釋.png

5含蓉、運算符

注意:沒有自增和自減運算符,其他的均與OC一樣

6项郊、print函數(shù)的認(rèn)識

定義:

/// - Parameters:
///   - items: Zero or more items to print.
///   - separator: A string to print between each item. The default is a single
///     space (`" "`).
///   - terminator: The string to print after all items have been printed. The
///     default is a newline (`"\n"`).
public func print(_ items: Any..., separator: String = " ", terminator: String = "\n")

說明:

  • 第一個參數(shù)items是可變參數(shù)馅扣,因此它可以是0個或多個參數(shù),
  • 第二個參數(shù)separator是參數(shù)中間的分割字符着降,默認(rèn)是" "
  • 第三個參數(shù)terminator是字符串末尾的字符差油,默認(rèn)是"\n",換行

使用示例:

let ss = "swift"
print("快樂","學(xué)習(xí)","\(ss)語言", separator: "-", terminator: "~啦啦")

運行結(jié)果:

運行結(jié)果.png

7任洞、其他

特殊點

  • 不用編寫main函數(shù)蓄喇。
    • Swift會將全局范圍內(nèi)的首句作為可執(zhí)行代碼的入口程序。
    • 當(dāng)然這并不代表Swift真的不需要main函數(shù)交掏,而是編譯期在底層會幫我們自動創(chuàng)建main函數(shù)
  • 一句代碼的尾部可以省略分號(;)妆偏。
    • 如果一行只有一條語句,語句末尾可以寫分號盅弛,也可以不寫分號钱骂,系統(tǒng)會自動通過換行來判斷語句
    • 如果鍵多條語句寫到同一行中叔锐,就必須用分號來隔開了。

Playground

Playground可以用來快速預(yù)覽代碼效果罐柳,可以很方便的學(xué)習(xí)語法掌腰,因此接下來的代碼驗證調(diào)試主要會使用Playground。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末张吉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子催植,更是在濱河造成了極大的恐慌肮蛹,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创南,死亡現(xiàn)場離奇詭異伦忠,居然都是意外死亡,警方通過查閱死者的電腦和手機稿辙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門昆码,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邻储,你說我怎么就攤上這事赋咽。” “怎么了吨娜?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵脓匿,是天一觀的道長。 經(jīng)常有香客問我宦赠,道長陪毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任勾扭,我火速辦了婚禮毡琉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妙色。我一直安慰自己桅滋,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布燎斩。 她就那樣靜靜地躺著虱歪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪栅表。 梳的紋絲不亂的頭發(fā)上笋鄙,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音怪瓶,去河邊找鬼萧落。 笑死践美,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的找岖。 我是一名探鬼主播陨倡,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼许布!你這毒婦竟也來了兴革?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蜜唾,失蹤者是張志新(化名)和其女友劉穎杂曲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袁余,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡擎勘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了颖榜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棚饵。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掩完,靈堂內(nèi)的尸體忽然破棺而出噪漾,到底是詐尸還是另有隱情,我是刑警寧澤藤为,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布怪与,位于F島的核電站,受9級特大地震影響缅疟,放射性物質(zhì)發(fā)生泄漏分别。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一存淫、第九天 我趴在偏房一處隱蔽的房頂上張望耘斩。 院中可真熱鬧,春花似錦桅咆、人聲如沸括授。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荚虚。三九已至,卻和暖如春籍茧,著一層夾襖步出監(jiān)牢的瞬間版述,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工寞冯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渴析,地道東北人晚伙。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像俭茧,于是被迫代替她去往敵國和親咆疗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容