//
// 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。中文翻譯為閉包。本文介紹幾種閉包的形式,以及一些閉包的特性。這是乙...