swiftly語言學習2

2021-06-23 02:29:47 字數 2104 閱讀 5343

函式和閉包

1.使用func來宣告乙個函式,使用名字和引數來呼叫函式,使用->來指定函式返回值

func greet(name:string,day:string)->string

varname =

greet

("bob","tuesday")

println(

name)

使用乙個元組返回多個值

func getgasprices()->(double,double,double)

println

(getgasprices())

函式的引數數量是可變的,用乙個陣列來獲取它們

func sumof(numbers:int...)->int

return sum

}println(

sumof

())println(

sumof(42

,597,12

)) 函式可以巢狀。被巢狀的函式可以訪問外側函式的變數,你可以使用巢狀函式來重構乙個太長或者太複雜的函式。

func returnfifteen()->int

add()

return y;

}println

(returnfifteen())

函式可以作為另乙個函式的返回值。

func makeincrementer()->(int->int)

return

addone

}var increment = makeincrementer()

println

(increment(7))

函式也可以當做引數傳入另乙個函式。

func lessthanten(number:int)->bool

func hasanymatches(list:[int ],condition:int->bool) ->bool

}returnfalse;

}函式實際上是一種特殊的閉包,你可以使用

{}來建立乙個匿名閉包。使用 

in 來分割引數並返回型別。 

var numbers = [20,19,7,12]

println

(hasanymatches(numbers,lessthanten))

println(

numbers

.map())

物件和類 

使用 class

和類名來建立乙個類。類中屬性的宣告和常量、變數宣告一樣,唯一的區別就是它們的上下文是類。同樣,方法和函式宣告也一樣。 

要建立乙個類的例項,在類名後面加上括號。使用點語法來訪問例項的屬性和方法 

class shape

}var shape = shape()

shape.numberofsides= 7

var shapedescription = shape.******description();

println

(shapedescription)

使用 init

來建立乙個構造器。 

class namedshape

func ******description()->string}

注意:self

被用來區別例項變數。當你建立例項的時候,像傳入函式引數一樣給類傳入構造器的引數。每個屬性都需要賦值

——無論是通過宣告(就像

numberofsides

)還是通過構造

器(就像

name)。

如果你需要在刪除物件之前進行一些清理工作,使用

deinit

建立乙個析構函式。

子類的定義方法是在它們的類名後面加上父類的名字,用冒號分割。建立類的時候並不需要乙個標準的根類,所以你可以忽略父類。

子類如果要重寫父類的方法的話,需要用

override

標記——

如果沒有新增

override

就重寫父類方法的話編譯器會報錯。編譯器同樣會檢測

override

標記的方法是否確實在父類中。

Swiftly語言學習1

1.let宣告常量,var宣告變數 宣告的同時賦值,編譯器會自動推斷出型別 var myvariable 42 myvariable 50 let myconstant 42 let implicitinteger 70 let implicitdouble 70.0 let explicitdou...

r語言學習(2)

控制流 if cond statement 1 else statement 2 cond是條件成立 則執行第一條命令 否則執行第二條命令 if any x 0 y log 1 x else y log x warning message in log 1 x nans produced y if ...

C 語言學習 2

程式2 題目 企題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 ...