// 定義函式時 需要加乙個 func關鍵字 sayhello 為函式名 括號裡的為引數(引數名: 引數型別) -> 指的是返回值 {}大括號裡面的表示函式體
func sayhello(name:string, number:int)->string
var numbers = [40, 50, 17, 54, 84, 23]
sortnum(numbers, 50, {(num1:int, num2:int)->bool in
return num1 > num2
sortnum(numbers, 30, { (num1, num2) -> bool in
return num1 > num2
sortnum(numbers, 44, { (num1, num2) -> bool in
num1 > num2
// $0代表閉包引數列表中第0個引數 $1代表閉包引數列表中第1個引數
sortnum(numbers, 33, {
$0 > $1
sortnum(numbers, 22, >)
// 尾隨閉包 寫在函式的引數列表外面, 代表函式的最後乙個引數
sortnum(numbers, 11) { (num1, num2) -> bool in
return num1 > num2
// struct 是值型別 類是引用型別 (操作的是物件)
struct student {
// 構造方法
init(name:string, age:int){
self.name = name
self.age = age
// 含有屬性和方法
var name : string = "aa"
var age : int = 10
func speak(num1 : int, num2 : int)->int{
return num1 + num2
var stu = student(name: "ff", age: 99)
stu.name
stu.age
stu.speak(3, num2: 2)
struct point {
var x = 0
var y = 0
struct size {
var width = 0
var height = 0
struct myrect {
// 儲存屬性
var origin = point()
var size = size()
var center : point{
// 計算屬性
get{
var originx = self.origin.x + self.size.width / 2
var originy = self.origin.y + self.size.height / 2
return point(x:originx, y:originy)
set(newcenter){
self.origin.x = newcenter.x - self.size.width / 2
self.origin.y = newcenter.y - self.size.height / 2
var rect = myrect(origin: point(x: 0, y: 0), size: size(width:100, height:200))
class person {
var name : string
var age : int?
init(name:string, age:int){
self.name = name
self.age = age
// 析構方法
deinit{
func say(){
println("say")
var p = person(name: "xq", age: 90)
p.name = "xx"
Swift閉包2 尾閉包
假設有這樣乙個函式 這個函式的最後乙個引數是乙個閉包,並且,這個閉包表示式很長。如果按照正常的方式來呼叫這個函式的話,需要在引數裡指明這個函式的引數名,然後後面跟著乙個閉包表示式。比如下面這種函式 func somefunctionthattakesaclosure closure void 正常的...
Swift基礎 閉包
閉包是自包含的函式 塊,可以在在 中被傳遞和使用。閉包能捕獲和儲存騎在上下文中任意常量和變數的引用。這就是所謂的閉合幷包裹著這些常量和變數,俗稱閉包。swift會為我們管理在捕獲過程中設計的所有記憶體操作。閉包表示式式一種利用簡潔語法構建內聯的方式 2.1 sorted函式 swift標準庫提供了s...
Swift 閉包專題
import foundation var arr 3,1,4,5,2 arr.sort by arr.sort by arr.sort by arr.sort by arr.sort by arr.sort by arrimport foundation var arr 3,1,4,5,2 當so...