swift第一課

//

// main.swift

// swift01

//

// Created by DioneFlora on 16/10/20.

// Copyright (c) 2016年 DioneFlora. All rights reserved.

//

swift第一課

//swift里面沒有頭文件和實現文件,只有一個swift文件

//swift里面沒有main的概念,程序從main.swift開始執行

//swift每一條執行語句可以不用分號結束,多條語句在同一行的時候才需要分號區分

//swift引用其他文件的內容直接引用,不用導頭文件

//print是swift里面的打印函數,效率比NSLog要高;可以不使用占位符,拼接采用()

//變量,常量,可選類型,控制流

//變量:定義之后允許改變,通過var表示

//常量:定義了之后不允許改變,通過let,常量定義出來一定要賦值,不賦值會出錯

//swift會根據初值來對變量進行自動推斷

//明確指明數據類型 let/var 變量名:數據類型=初值

import Foundation

let number = 20

let number1 = 12.3

var number2:Int = 20

//var number2 = 25.6不允許

//不同數據類型之間不能直接運算,必須進行強轉let result = number1 + number2

let result:Int = Int(number1) + number2

let result1:Double = number1 + Double(number2)

print("result = (result)")

print("Hello(1234),World(5678)!")

//字符Character:用雙引號表示,單個字母,指明類型Character

let cha:Character = "a"

//字符串:String:雙引號表示多個字符

let str = "HelloWorld"

//可選類型:如果某一個變量可能為空(nil),那么這個變量就是數據可選類型,可選類型用 ? 進行表示

//打印可選類型會有optional字眼,如果要去掉optional就進行強制解包

//var 變量名:數據類型? = 初值(可以不給初值(var 變量名:數據類型))

var num0:Int? = 50

//num0 = nil(如果不注釋,令值為nil 崩潰,提示錯誤atal error: unexpectedly found nil while unwrapping an Optional value)

let num1:Int = 20

//可選類型不能直接參與運算,必須進行強制解包之后才可以參加運算,強制解包用 ! 表示

//對可選類型進行強制解包必須確保可選類型的值不是nil,否則對nil進行強制解包會導致系統崩潰(即上段注釋num0……)

let sum = num0! + num1

print("sum = (sum)")

let 猴子 = "請來的逗比"

print("(猴子)")

println("Hello, World!")

//布爾類型

let flag:Bool = true //false

//條件判斷:if

//(1)if后面的小括號可以去掉,大括號不能省略(即使里面只有一句代碼)

//(2)if沒有非零即真的概念,只有true or false

if(flag){

print("flag is true");

}

let value = 10

if value > 0{

print("value != 0")

}

//(3)可選類型的條件判斷

var name:String? = "hello"

//<1>:if-let/var:先判斷可選類型name是否為nil,如果不為空,就將name進行強制解包后的值,賦值給temp,然后執行代碼段,否則的話就不執行

print(name)

if let temp = name{

print(temp)

}

//<2>if-let/var-where:是在if-let的基礎上對定義的局部變量再做一次判斷,兩個條件都滿足的時候執行{}里的代碼塊

if let temp = name where temp == "hello"{

print("if-let-where:name = hello")

}

//定義一個整形可選值n,如果該整形可選值不為nil,使用for循環打印n遍“hello”

var n:Int? = 8

if let temp = n {

for var i=0;i < temp;i++ {

print("hello")

}

}

//<3>guard:如果可選值count不為nil,就強制解包后的值給temp,否則就執行{}里的代碼塊,return一定要寫

/*func demo(){

let count:Int? = 3

guard let temp = count else{

print("count 為 nil")

return

}

print(temp)

}

demo()

*/

//定義一個整形可選值myValue,如果該值不為nil并且是偶數的話就用for循環打印myValue遍helloWorld,否則就打印該數是奇數

var myValue:Int? = 8

if let temp = myValue where temp % 2 == 0 {

for var i = 0;i < temp;i++ {

print("helloWorld")

}

}else if let temp = myValue where temp % 2 == 1{

print(temp,"該數是奇數")

}

//a = b ?? value

//??是將b這個可選值進行判斷,如果b不為nil則對b進行強制解包后的值給a,如果b為nil則為a提供一個默認值value

let bilibili:Int? = nil

let asd = bilibili ?? 3

print("asd = (asd)")

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容