簡單的說可以認定為乙個集合,但是可以進行不同型別的資料封裝,可以進行整體的傳遞和操作
定義乙個元組的幾種方式
//通過型別推斷,推斷出元組中的值
var a =(1
,15.6
,"hello"
,true
,"a"
)//通過自己定義的方式建立,但是引數型別必須與前邊定義型別順序相同
var b:
(int
,string
,double
,bool)=
(1,"world"
,15.2
,false
)//在什麼都不定義的情況下,可以為空
var c =()
//但是如果定義了,不能為空,元組中必須傳值
var d:
(int)=
(1)
1.根據下標,索引取值
2.根據索引來改變值
3.元組的傳遞
//根據下標,索引取值
print
(a.0
)/* 輸出結果為:1 */
//也可以根據索引來改變值,但只有變數形式可以改變,常量形式不能改變a.0
=100
print
(a.0
)/* 輸出結果為:100 */
//元組的傳遞,是值傳遞,而不是引用,相當於是拷貝乙份給變數,更改f中的並不會影響a中的。
var f = a
print
(a)print
(f)f.0=
200print
(f)/* 輸出結果 :
(100, 15.6, "hello", true, "a")
(100, 15.6, "hello", true, "a")
(200, 15.6, "hello", true, "a")
*///也可以直接定義引數名
print
("====直接定義引數名===="
)var test =
(name1:
1,name2:
"2",name3:
false
)print
(type
(of: test)
)print
(test)
print
(test.name1)
var woc:
(name1:
int,name2:
string)=
(1,"hello"
)print
(type
(of: woc)
)print
(woc)
//自動賦值
let(name1,name2,name3,name4)=(
1,"swift"
,false
,true
)print
(type
(of: name1)
)print
(name1)
print
(type
(of: name2)
)print
(name2)
print
(type
(of: name3)
)print
(name3)
print
(type
(of: name4)
)print
(name4)
var(par1,
_,par2)=(
"引數1"
,"引數2"
,"引數3"
)print
(par1,par2)
感興趣的可以直接將上邊的**複製到xcode中執行看看實際效果
print
("提前了解---------------"
)var data =
(name1:
1,name2:
"hello"
,name3:
false
)func
handle
(parm:
(int
,string
,bool))
->
(int
,string
,bool
)print
(data)
print
("-------------------"
)var data2 =
handle
(parm:data)
print
(data2)
var test01 =(1
,1.3,""
,false
)print
(type
(of: test01)
)
從0開始學swift 基礎
可以同時定義多個變數並賦予其型別注釋 let a,b,c int double 64位浮點數,要求至少有15位數字,精度很高。float 32位浮點數,要求最少有6位數字,精度要求不高時使用。注 當你沒有給浮點數標明型別時,swift總是會選擇double 二進位制 0b 八進位制 0o 十六進製制...
機器學習 從0開始
by 香蕉麥樂迪 機器學習簡介 機器學習是許多演算法的統稱,其中包含最近幾年火熱的深度學習,還包括許多適用於各種不同場景的其他機器學習演算法 邏輯斯特回歸,svm,knn,adaboost,em,kmeans等等 這些演算法從誕生到現在都有了幾十年的歷史 深度學習指的是深度神經網路,其中用於處理影象...
openGLSL從0開始學習
首先,找了些優秀的學習 openglsl 雙緩衝 double buffer 機制 01 20getting 20started 03 20hello 20window opengl 三角形 01 20getting 20started 04 20hello 20 opengl shading la...