元組作為返回值
元組作為返回值
嚴(yán)格地說,一個(gè)函數(shù)只能返回一個(gè)值,但是如果這個(gè)返回值是元組,其效果等同于返回 多個(gè)值。例如,你想對(duì)兩個(gè)整數(shù)做除法,計(jì)算出商和余數(shù),依次計(jì)算出 x/y和 x%y是很低 效的。
同時(shí)計(jì)算出這兩個(gè)值更好。
內(nèi)建函數(shù)divmod接受兩個(gè)參數(shù),返回包含兩個(gè)值的元組 — 商和余數(shù)。
Swift 元組(Tuple)
元組類型,用于在單個(gè)復(fù)合值中對(duì)多個(gè)值進(jìn)行分組 元組中的值可以是任何類型,并且不需要是相同類型 聲明: 元組聲明的 語法 方式1: 最簡(jiǎn)單的元組,就是在圓括號(hào)中,用逗號(hào)分隔的一組值 是一個(gè)具有兩個(gè)值的元組,一個(gè)元素是整數(shù)類型,另一個(gè)元素是字符串類型(這百科是一個(gè)合法的數(shù)據(jù)) 方式2 :可以在聲明時(shí)命名元組的變量,也可以使用它們的名稱來調(diào)用 數(shù)組和字典組合 取值 方式1:使用下標(biāo) 方式2:使用元素名稱 方式3:拆分成常量/變量 應(yīng)用: 1、作為函數(shù)參數(shù) 2、作為函數(shù)返回值 總結(jié): 元組 優(yōu)點(diǎn): 1、元組可以同時(shí)存儲(chǔ)多種類型元素,且元素類型固定,以保數(shù)據(jù)安全,除非你定義數(shù)據(jù)類型為Any。
C語言自定函數(shù)內(nèi)定義一維數(shù)組,為什么不能將數(shù)組名作為返回值?
并不是一定不能返回,而是要區(qū)分定義的一維數(shù)組類型。1當(dāng)一維數(shù)組為靜態(tài)類型時(shí),即statictypevar[N];的形式,這時(shí)是可以將數(shù)組名返回的。
2當(dāng)一維數(shù)組不是靜態(tài)類型,即不存在static修飾時(shí),數(shù)組為局部變量,這時(shí)不能將數(shù)組名返回。
當(dāng)把數(shù)組名返回時(shí),實(shí)際上是返回了數(shù)組的首地址,后續(xù)繼續(xù)使用該地址指向的內(nèi)存。如果數(shù)組為局部變量,那么按照C語言的規(guī)則,該段地址在退出函數(shù)后,會(huì)被釋放,并可能被系統(tǒng)做其它用途,這樣再繼續(xù)訪問該段地址就會(huì)引起不可預(yù)知錯(cuò)誤。所以對(duì)于局部數(shù)組名是不可以返回的。而靜態(tài)局部變量,開辟的空間不會(huì)在退出函數(shù)后釋放,這時(shí)可以返回。