swift Day04

2016-05-14  本文已影响16人  michaeljacc

近期看这些书,越发觉得英语很重要
函数fiction 格式 fund funcName(paraNamed : type, ... ) ->返回值

 fun isNameHello (name : String...) ->String{
return name + hello
}
isNameHello(wjw)

fun findLargestBalance(balances : Double...) -> Double{
var result = -Double.infinity

for balance in balances{
if result < balances{
result = balances
        }
    }
return  result
}
func bankVault(passcode : String) -> String {
    func openBankVault(Void) -> String {
      return "Vault opened"
    }
  fun closeBankVault(Void) ->String{
    return "Vault closed"
  }
  if passcode == "secret" {
      return openBankVault()
   }else{
  return closeBankVault()
  } 
}
print(bankVault("wrongscret"))
屏幕快照 2016-05-14 下午10.15.40.png

嵌套函数可以避免不必要的功能,打开或关闭金库的唯一方法是通过bankVault函数, 执行这些功能被隔离到函数bankVault中.

func writeCheck(payee : String = "Unknow", amout : String = "10.00") -> String {
    return "check payable to " + payee + "for $" + amout
}
writeCheck()
writeCheck("michaeljacc", amout: "20")
//第一个参数不要表名参数名,第二个参数需要表明函数名称 即amout
我不懂为什么不两个都加上参数名.按照Apple的说法,这样可以提高代码的可读性,我们可以管上面的调用读作:whriteCheck michaeljac and amout20。

默认参数是Unknow和10
注意:第一个参数不要表名参数名,第二个参数需要表明函数名称 即amout

定义writeCheck的时候,我们使用的payee和amout在Swift里叫做InnerName,即参数的内部名字,这个名字主要用来帮助函数的实现者实现函数逻辑。其实,函数参数还有一个OuterName,函数的调用者使用OuterName向函数传递参数。只不过,默认情况下,函数参数的InnerName和OuterName是相等的。

func writeCheck( from payee : String = "Unknow",  total amout : String = "10.00") -> String {
    return "check payable to " + payee + "for $" + amout
}
writeCheck()
writeCheck("michaeljacc", amout: "20")

from和total就是outName(外部参数)

闭包closure

与函数密切相关,

swift闭包结构

{ (parameters) -> return_Type in
     statement
}
上一篇下一篇

猜你喜欢

热点阅读