標籤:
相關網站:http://www.cnblogs.com/tt_mc/p/3871295.html 相關輔助操作:可以在右邊直接查看輸出值 可能出現的常見問題:1.凡是=注意左右間距一樣2.程式有時會不斷提示錯誤,解決方案:重啟Xcode /*-----------1.常量與變數--------------*/
//1.在swift裡面 變數的修飾用var 常量的修飾用let
//2.print與println的區別是一個沒換行一個換行了
//3.swift 資料類型寫在變數名的後面 格式: var 變數名:類型
//4.等號兩邊要有空格都有空格 要沒空格都沒空格 (隱式類型推斷)
//5資料類型的首字母大寫
var a = 10
var a1:Int //指定類型
a1 = 2
println(a1)
println(a)
println(a)
let b = 8
println(b)
//其他語言採用的是ASCII編碼方式,而swift採用的是uncode編碼方式.以下命名方式不推薦明明依然採用字母/數字/底線開頭的命名規則
var ?? = 20
println(??)
//-------------資料類型----------------
var f:Float=10.6
var f1 = 10.6//預設為double類型
var w:Int
//強制轉換類型的格式為: 類型(需要轉換的變數名)
//所有的語言,在資料轉換時從高精度轉換到低精度都會存在資料的丟失
w = Int(f1)
//字串string操作
var str = "妹子是"
var str1 = "徐小龍的"
//拼接
var ss = str + str1
println(ss)
//字串添加參數\()在swift中的表示預留位置
println("漂亮的\(str)\(str1)")
//將整型轉換成字串
var sss = String(w)
println(sss)
//----------------數組----------------
//C語言中的數組必須存放相同類型的資料類型 OC中的數組必須存放對象
//swift中的數組只能存放同種資料類型(不同版本不一樣)
var array = [1,2,3]
var array1:Array=[1, 2, 3, 4]
var array2:Array<Int>=[1,2,3,4]//<>中為資料類型
var array3:[Int]=[2,3,4]//這種方式是官方推薦的
var arr:[String]=["字串1","字串2"]
//放置不同類型的方法必須使用<Any>修飾
var array4:Array<Any>=[1,"w2e",3.3]
//添加元素
array4.append(4)
array4.append(12)
//插入元素
array4.insert("你好", atIndex: 1)
array4.insert(3.5, atIndex: 2)
//刪除
array4.removeAtIndex(1)
array4.removeAtIndex(2)
println(array4)
//替換0-2位置的值
array4[0...2]=[6,7,8]
println(array4)
for value in array4
{
println(value)
}
//列印index
for(indext,value) in enumerate(array4)
{
println("indext=\(indext),value=\(value)")
}
//-------------------元組-----------
//很類似結構體
var person:(name:String,age:Int,address:String)=("徐小龍",30,"廣州")//實質就是定義了三個變數name,age,address
println(person)
println(person.age)
println(person.2)
//把元組賦值給另一個元組
var(name,age,address)=person
var (names,ages,_)=person//用底線忽略掉第三個不想要的元素
println(names)
//----------------字典---------------
//字典的所有ke值必須是同一類型的,所有的value值也必須是同一類型的 key和value可以不是同一類型的(不同版本不一樣,處了強制寫了資料類型的必須一樣外)
//字典用[]
var dic:Dictionary = ["ke1":"va1","ke2":"va2"]
println(dic)
var dic1:Dictionary<Int,Int> = [1:11,2:22]//強制int類型
//常用方法
//添加一個索引值對
//當字典中沒有這個索引值對錶示添加,否則為修改(覆蓋掉)
dic["ke3"]="va3"
dic["ke1"]="va11"
println(dic)
//刪除
dic.removeValueForKey("ke1")
println(dic)
//得到字典裡面所有key值
println(Array(dic.keys))
//得到字典裡面所有value值
println(Array(dic.values))
//--------------------可選類型---------
//可選資料類型 就是在我們基礎資料類型後加?
//Optional()就是一個可選類型
var aaw:Int?
aaw = 6
//當我們想要輸出裡面的內容的時候就需要將其解包 注意:解包前可選類型變數的值不可為空 需要先賦值 為空白強制解包會造成程式崩潰
println(aaw)
println(aaw!)
//------------------流程式控制制語句----------
//在這裡沒有非0即為真的說法 只有ture和false
var g = 1
//if語句的()可以不寫
if g==1
{
println("yes")
}else
{
println("no")
}
//switch
//1switch語句必須要default語句
//2switch語句case裡面必須要有一句代碼
//3每條case語句後面都內建了一個break
var s = 2
switch s
{
case 1:
println("1")
case 2:
println("2")
case 3:
println("3")
default:
println("default")
}
//
var tt = 2
switch tt
{
case 1:
println("1")
case 2,3:
println("2或3")
fallthrough//不管下條語句是否正確 都會執行
case 4:
println("4")
default://必須要有這條語句
println("default")
}
//case 可以是一個範圍,而且範圍還可以交叉,交叉值只走第一種情況
var s2=10
switch s2
{
case 1...15:
println("1...15")
case 5...15:
println("5...15")
default:
println("default")
}
//雙重判定
switch s2
{
case 1...15 where tt==3:
println("s2在1到15之間 tt的值為3")
default:
println("default")
}
//switch可以傳遞一個元組
var point=(0,4)
switch point
{
case(_,0):
println("在X軸上面")
case(0,_):
println("在Y軸上面")
case(0,4):
println("就是我的點")
default:
println("default")
}
//------------------迴圈結構----------
//與C語言沒什麼太大區別 就是加不加()
for var i=0;i<10;i++
{
for var j=0;j<10;j++
{
println("i=\(i) j=\(j)")
if i==3&&j==4
{
break;//終止內層迴圈
}
}
}
//switch標記的使用
aa:for var i=0;i<10;i++
{
for var j=0;j<10;j++
{
if i==3&&j==4
{
println("hd")
break aa;//
}
}
}
//---------------------函數---------
//func(函數的關鍵字)
//switch 函數定義的格式 func 函數名(參數名:)->傳回值類型{語句塊}
func sayHi(name:String)->String
{
return name + "你好"
}
var sa = sayHi("世界")
println(sa)
//兩個數之和
func sum(summ1:Int ,summ2:Int)->Int
{
return summ1 + summ2
}
var summ = sum(10,10)
println(summ)
//傳回值如果是多個 可以以元組的方式返回出來
func countNumber()->(saa:Int,sbb:Int)
{
var saa=1
var sbb=2
return (saa,sbb)
}
var s_n = countNumber()
println(s_n.saa)
//---------------------閉包----------
//閉包是一個封閉式的代碼塊,類似於block
//文法格式((參數列表)傳回值類型 in 傳回值)
//正常的函數調用
//數組排序
var mans = ["zhangsan","lisi","wangwu","zhaoliu"]
func sortByName(s1:String,s2:String)->Bool
{
return s1>s2
}var s3 = sorted(mans,sortByName)//依次從數組中取兩個元素 傳給sortByName進行比較
println(s3)
//閉包方式
var s4=sorted(mans, { (s1:String, s2:String) -> Bool in
return s1>s2
})println(s4)
Swift基礎學習01