swift中的函式的使用,巢狀

2021-09-30 13:14:58 字數 2527 閱讀 4348

// 函式

// swift 中 函式的關鍵字叫 func

//func 函式名 (引數) -> 返回值

//函式的宣告與實現

func

問候語 (name:

string

, day:

string

) ->

string

// 函式呼叫

// 在xcode7之前不用加

print

(問候語

("lisa"

,"星期三"))

在xcode7之後就需要加標籤,如下

//print(問候語("lisa", day :"星期三"))

// 元組作為函式返回值

// 傳入乙個int型的陣列,返回最大值,最小值,

func

計算 (

var陣列: [

int])->(max:

int, min:

int, sum:

int) if

min > item

sum += item }

return

(max, min, sum) }

let計算結果 =

計算([56,56,88,97,15,64,46])

print

(計算結果)

print

("  max =\(

計算結果

.max

), min =\(

計算結果

.min

) \n")

// 函式的巢狀函式

func

returnfifteen() ->

int

addfive()

addfive()

return

ten }

print

(returnfifteen

())

// 函式作為返回值的情況,返回函式的引數列表 -> 返回函式的返回值

func

makefunc () -> (

int->

int)

return

addfive

// 它的引數就等於func1 傳入的引數 }

varfunc1 =

makefunc()

print

("\n func1(12) =\(

func1

(12)

) \n")

func

makecomputerfunc (operation:

string

) -> ((

int,

int) ->

int)

return

add

case

"-":

func

sub(num1:

int, num2:

int) ->

int

return

sub

case

"*":

func

multi(num1:

int, num2:

int) ->

int

return

multi

case

"/":

func

div(num1:

int, num2:

int) ->

int

return

div

default:

func

none(num1:

int, num2:

int) ->

int

return

none

} }

varfunc3 =

makecomputerfunc

("+")

print

(func3

(45,89))

// 函式作為引數的情況

// 第一層函式,引數為乙個陣列,和乙個比較的函式,返回值是乙個bool型別

// 比較函式,判斷第一層函式傳入的陣列中是否有大於10的數,如果大於10返回true,如果小於10返回false

func

hasanymatches(numbers:[

int], condition:(

int)->

bool

) ->

bool }

return

false }

func

morethanten (num:

int) ->

bool

else }

print

(hasanymatches

([5,3,15,6,5,4],

morethanten))

//    print(hasanymatches([5,3,15,6,5,4], condition: morethanten)) // xcode7 以後的方法

Swift 中的高階函式和函式巢狀

在swift中,函式可做為 一等公民 的存在,也就意味著,我們可以和使用int以及string一樣,將函式當做 引數 值 型別來使用。其中,將函式當作乙個引數和值來使用可見下 typealias addtwoints int,int int var functype addtwoints.self ...

Swift函式的使用

函式 1.定義函式 func 函式名 傳入的值 string string 2.函式的呼叫 let 傳入值 hallow xiaozhou println 函式呼叫的結果為 函式名 傳入值 函式呼叫的結果為 hallow xiaozhou 3.函式的形式引數和它的返回值 多參和無參 1 多參 fun...

Python中函式巢狀以及函式巢狀的繼承

a 10 b 0 c 5 try print a的值是 d,b的值是 d a,b f c.open a.txt print f d a b print d除以 d的值為 d a,b,d except zerodivisionerror,attributeerror as msg print 程式出錯...