swift中的閉包

2021-07-03 22:22:45 字數 2255 閱讀 9250

//

//  main.swift

//  閉包

// //  created by

朱敏on 15/6/15. 年

//import

foundation

letnames = [

"lily"

,"anna"

,"duty"

,"poly"

,"gray"]

func

comparename(s1 :

string

, s2:

string

) ->

bool

//var sortedarray = names.sorted(comparename)

//println("

排列之後的變化:

\(sortedarray)");

varsortedarray = names.sorted()

println(

"排列之後的變化:\(

sortedarray

)");

leta = 5

//let a = 4

println(a) //

下面的函式實現了兩個字串變數的相加

func

sayhello(s1 :

string

,s2:

string)

sayhello(

"nihao"

, "helinyu")

/* 1:func

是函式關鍵字

2:say

是函式名,表示函式的位址

3:say

函式引數是整形

返回值為布林型別 */

func

say(num:

int)->

bool

varby:(

int)->

bool

= say /*

1:say

是函式名的位址,並且函式型別,引數為整形,返回值布林型別 2

:(int)->bool

表示函式型別,引數為整形

,返回值為布林型別。 即:

by是函式變數(引數為整形,返回值為布林型別)

指向函式名(

say) */

varb = by(

10)

//by(12)

直接呼叫函式

println(b) /*

函式getlist說明

引數:

1:第乙個引數

整形集合變數 2

:第二引數,函式型別變數

引數為整形返回值布林型別

返回值整形集合 */

//func getlist(arr:int , pre:(int)->bool) ->int

//    }

//    return temparr;

//} //

///* //

呼叫getlist 說明

//第乙個引數

整形陣列

[1,2,3,4] //

第二個引數

閉包來指向給

函式型別。

// 閉包型別說明,引數為整形

,返回值為布林型別

//*/

//let arr=getlist([1,2,3,4],)

//println(arr) //

類中「例項屬性

」沒有初始化的時候,是編譯不過去的。 //

解決:1)

定義變數的時候做好初始化

2)使用初始化方法進行初始化

class

rect

//3)

又或者

varwidth:

int;

varheight:

int;

init

(w:int

, h:

int)

func

setsize(w:

int, height:

int)

//    func getarea() -> int }

//var rect = rect();

height: 20);

varrect = rect(w:

10,h:20)

println(

"求得的面積是:\(

rect)")

println(

"求得的面積是:\(

rect)")

swift中的閉包

swift 閉包又名匿名函式,函式是特殊的閉包。相當於objective c中的block 語法格式 使用系統排序函式,說明閉包的省略機制 var numbers 11,22,44,77,33,66 var numbersresult sorted numbers,numbersresult 呼叫 ...

Swift閉包2 尾閉包

假設有這樣乙個函式 這個函式的最後乙個引數是乙個閉包,並且,這個閉包表示式很長。如果按照正常的方式來呼叫這個函式的話,需要在引數裡指明這個函式的引數名,然後後面跟著乙個閉包表示式。比如下面這種函式 func somefunctionthattakesaclosure closure void 正常的...

Swift 中的Closures 閉包 詳解

在swift沒有發布之前,所有人使用oc語言編寫cocoa上的程式,而其中經常被人們討論的其中之一 block 一直備受大家的喜愛。在swift中,同樣有這樣的乙個角色,用於當開發者需要非同步執行的之後使用的一種語法 closure。中文翻譯為閉包。本文介紹幾種閉包的形式,以及一些閉包的特性。這是乙...