// 函式
// swift 中 函式的關鍵字叫 func
//func 函式名 (引數) -> 返回值
//函式的宣告與實現
func
問候語 (name:
string
, day:
string
) ->
string
// 函式呼叫
// 在xcode7之前不用加
(問候語
("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])
(計算結果)
(" max =\(
計算結果
.max
), min =\(
計算結果
.min
) \n")
// 函式的巢狀函式
func
returnfifteen() ->
int
addfive()
addfive()
return
ten }
(returnfifteen
())
// 函式作為返回值的情況,返回函式的引數列表 -> 返回函式的返回值
func
makefunc () -> (
int->
int)
return
addfive
// 它的引數就等於func1 傳入的引數 }
varfunc1 =
makefunc()
("\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
("+")
(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 }
(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 程式出錯...