(1)引數型別為可選型optional. 如果引數為空,則輸出??後面的字串,否則輸出可選型的引數值。
import foundation
func sayhello(name:string?)->string
var nickname:string?
nickname = "jack"
println(sayhello(nickname))
(2)函式如果沒有返回值,可以在後面加上->void。
(3)使用元祖讓函式返回多個值。
import foundation
let userscores = [12,90,45,3,213,45]
func maxminscores(scores:[int]) -> (maxscores:int,minscores:int)
return (curmax,curmin) }
let result = maxminscores(userscores)
println("最大值:\(result.maxscores)" )
println("最小值:\(result.minscores)" )
或者:
import foundation
let userscores = [12,90,45,3,213,45]
func maxminscores(scores:[int]) -> (int,int)
return (curmax,curmin) }
let result = maxminscores(userscores)
println("最大值:\(result.0)" )
println("最小值:\(result.1)" )
上述例子如果返回值為空,則需要進行如下的優化:
import foundation
let userscores = [12,90,45,3,213,45]
func maxminscores(scores:[int]) -> (maxscore:int , minscore:int)?
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]
return (curmax,curmin) }
//返回的是乙個可選型;
if let result = maxminscores(userscores)
如果傳入的陣列引數為空,再次進行優化:
import foundation
var userscores:[int]? = [1,2,3,4,5,6]
func maxminscores(scores:[int]) -> (maxscore:int , minscore:int)?
var curmax = scores[0]
var curmin = scores[0]
for score in scores[1 ..< scores.count]
return (curmax,curmin) }
//返回的是乙個可選型;
userscores = userscores ??
if let result = maxminscores(userscores!)
C 學習筆記(二十九 ) 之string容器
老規矩 妹妹鎮樓 c 標準庫定義了一種string類,定義在標頭檔案 string 中。1.char是乙個指標,string是乙個類string封裝了char,管理這個字串,是乙個char 型的容器。2.string封裝了很多實用的成員方法查詢find,拷貝copy,刪除delete 替換repla...
C 學習(二十九)內聯inline
內聯函式適用能夠快速執行的函式,此時使用內聯省去了函式的呼叫開銷。內聯函式像巨集一樣都是在編譯期展開,內嵌到呼叫處。inline省去普通函式的壓棧和call,以空間換時間,僅僅省去了函式呼叫的開銷 當函式體比較小的時候,內聯該函式可以令目標 更加高效.對於訪問函式以及其它函式體比較短,效能關鍵的函式...
學習筆記第二十九節 動態Dp
因為noip2018考了這乙個東西,所以不得不學。我們以這一題為例題來引入今天的學習 模板 動態dp 我們顯然可以用樹形dp去做,倒不如我們先把方程列出來。這兩條公式挺顯然的吧。假設我們現在無聊,往樹鏈剖分的角度去考慮。那麼我們設乙個陣列g,表示的是從非重兒子轉移來的狀態,跟f陣列的轉移方程類似。我...