Swift 下 函式 閉包 結構體

2022-08-27 04:54:09 字數 2012 閱讀 3117

// 定義函式時 需要加乙個 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...