天天看點

Swift初體驗 (一)

//  聲明一個常量
let maxNumberOfStudents: Int = 47

//  聲明一個變量,如果沒有在聲明的時候初始化,需要顯示的标注其類型
var currentNumberOfStudents = 23

//  使用前必須初始化
currentNumberOfStudents += 1

//  浮點資料自動推斷為Double類型,如果需要指定了Float類型,需要顯示的指定Float類型
let score: Float = 90.5;

let englishScore = 80
let chineseScore = 90.5;

//  不同類型的資料不能直接進行運算,需要自己手動轉換為相同的格式,格式是:Type(Value)
let allScore = Double(englishScore) + chineseScore

println("Int8 max value = \(Int8.max)")

var name: String = “HMT"

//  顯示的聲明一個字元類型
let sex: Character = “m"



var names: Array<String> = ["hmt","wdq1"]
var namesT: String[] = ["hmt","wdq"]
//var nameQ: NSArray = ["aaa","bbb","ccc"]
namesT += "qqqqq”
//  數組即使是不可變的,依然可以改變它的值
namesT[1] = “1111"
//  2個點半開半閉  3個點全閉
namesT[1..2] = ["buzhidao","heheheheh"];
println("\(namesT)”)



for (index,value) in enumerate(namesT){

    println("\(index) \(value)")
}

var sexDic: Dictionary<String,String> = ["zhuwenpeng":"m","zhaoweisong":"m”]
//  如果字典中不存在這個鍵值對,則會添加;如果存在,就會替換修改
sexDic["chenfengchang"] = "m"
println(sexDic["chenfengchang"])
for (key,value) in sexDic{

    println("key = \(key) value = \(value)")
    println(sexDic["chenfengchang"])
}
//  "_"代表忽略元祖中的某個位置
for (_,value) in sexDic{

    println("value = \(value)")
}

let firstSex = sexDic["chenfengchang”]
//  字元串判斷用”=="
let isMale = firstSex == "m"
//  判斷隻接受布爾值
if isMale{

}else{

}

//  元組
let status:(Int, String) = (404,"Not Found")
println("statusCode = \(status.0) statusMessage = \(status.1)")

let status1:(statusCode:Int,statusMessage:String) = (statusCode:404,statusMessage:"Not Found")
println("statusCode = \(status1.statusCode) statusMessage = \(status1.statusMessage)")

let (statusCode,statusMessage) = (404,"Not Found")
println("statusCode = \(statusCode) statusMessage = \(statusMessage)")


let countStr = "333"
// toInt()方法傳回的是一個Int類型的可選變量,可能為空,加”?"修飾
let count: Int? = countStr.toInt()

if count{
    let realCount = count!  //  強制解析
    println("realCount = \(realCount)")
}else{
    
}
//  先判斷count是否有值,如果有值則把值付給realCount,如果沒有就進入else
if let realCount = count{
    println("realCount = \(realCount)")
}else{

}

let point = (x: 2,y: 2)
switch(point){
case (0,0):
    println("")
case (let x,0):
    println("")
case (0,let y):
    println("")
case (let x,let y):
    println("")
}

switch(point){
case (let x,let y) where x == y:
    println("point在 x=y 這條線上")
case (let x,let y) where x == -y:
    println("")
case (let x,let y):
    println("")
}

let number = 122
switch(number){
case 0...9:
    println()
case 10...99:
    println()
case 100...999:
    println()
    fallthrough  //  相當于C語言中的switch不加break效果
default:
    println()
}

let tempString = "iyoipolk"
tempName: for letter in tempString{
    switch(letter){
    case "a", "e", "i", "o", "u":
        println("letter 是一個元音字母")
        break tempName
    default:
        println("letter 是一個輔音字母")
    }
}
           

繼續閱讀