Swift 中的函数(下)
工具:Xcode6.4
直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会
- import Foundation
- /***********嵌套函数*************/
- func getMathFunc(#type: String) -> (Int) -> Int{
- func squre(num:Int) -> Int{
- return num*num
- }
- func cube(num:Int) -> Int{
- return num*num*num
- }
- switch(type){
- case "square":
- return squre
- default:
- return cube
- }
- }
- var mathfunc = getMathFunc(type: "other")
- println(mathfunc())
- //由于嵌套函数在外函数内部只作用于该函数内部,所以使用闭包简化这个嵌套函数
- /***********闭包*************/
- /*
- { (形参列表) -> (返回值) in
- 可执行语句
- }
- */
- func getMathFunc_1(#type: String) -> (Int) -> Int{
- // func squre(num:Int) -> Int{
- // return num*num
- // }
- // func cube(num:Int) -> Int{
- // return num*num*num
- // }
- switch(type){
- case "square":
- return {
- (num:Int) -> Int in
- return num * num
- }
- default:
- return {
- (num:Int) ->Int in
- return num * num * num
- }
- }
- }
- var mathfunc_1 = getMathFunc_1(type: "other")
- println(mathfunc_1())
- //利用上下文推断类型
- var squre1: (Int) -> Int = {(num) in return num*num }
- println(squre1())
- var squre2: (Int) -> Int = {num in return num*num }
- println(squre2())
- //省略形参名,通过$0,$1...来引用第一个、第二个参数
- var squre3: (Int) -> Int = {$ * $}
- println(squre3())
- //闭包的经典使用
- var result: Int = {
- var result =
- for i in ...${
- result *= $
- }
- return result
- }(,)
- println(result)
- //尾随闭包
- func someFunction(num:Int,fn: (Int)->()){
- //执行代码
- }//第一个参数为整型,第二个参数为闭包
- //调用这个函数: someFunction(20,{})
- //使用尾随闭包调用函数的格式:someFunction(20){}
- //捕获上下文中的变量或者常量
- func makeArr(ele:String) ->() ->[String]{
- //创建一个不包含任何元素的数组
- var arr: [String] = []
- func addElement() -> [String]{
- //向arr数组中添加一个元素
- arr.append(ele)
- return arr
- }
- return addElement
- }
Swift 中的函数(下)的更多相关文章
- Swift 中的函数
学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 练习一: import Foundation //函数 ...
- Swift 中调试状态下打印日志
首先我们应该知道Swift中真个程序的入口就是在AppDelegate.swift中.所以在打印日志在 AppDelegate.swift中是这样的 import UIKit @UIApplicati ...
- Swift 中的利刃,函数和闭包
input[type="date"].form-control,.input-group-sm>input[type="date"].input-grou ...
- Swift 中的高阶函数和函数嵌套
高阶函数 在Swift中,函数可做为“一等公民”的存在,也就意味着,我们可以和使用 int 以及 String 一样,将函数当做 参数.值.类型来使用. 其中,将函数当作一个参数和值来使用可见下: t ...
- swift 2.2 语法 (下)
前言: 1.此文中的语法会根据Swift的升级变动而更新. 2.如果需要请移步 -> swift2.2 语法(上).swift 2.2语法(中) 类的析构函数 swift会自动释放不需要的实例来 ...
- Swift学习之函数和简单地控件的创建
今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的 ...
- Swift 学习- 07 -- 函数
// 函数 // 函数是一段完成特定任务的独立代码片段, 你可以通过给函数命名来标识某个函数的功能, 这个名字可以被用来在需要的时候'调用'这个函数来完成它的任务 // swift 统一的函数语法非常 ...
- Swift 学习笔记 (函数)
函数 函数是一个独立的代码块,用来执行特定的任务.Swift中的函数与Object-C中的函数一样,但是声明与书写的方式不太一样,现在我们就通过几个例子介绍一下Swift中的函数.简单的来说,他与JS ...
- Swift新手教程系列5-函数+selector在swift中的使用方法
原创blog.转载请注明出处 近期在用swift写代码,尽管遇到一些问题,可是代码量确实减了不少. swfit新手教程系列会随着我使用swfit中的积累,不断地去修正更新 之前的教程 swift单例模 ...
随机推荐
- MySQL工具汇总
本博客已经迁移至:http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文请点击:http://cenalulu.github.io/mysql/mysql-tools-lis ...
- PowerMock 简介--转载
原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-powermock/ EasyMock 以及 Mockito 都因为可以极大地简化单元测试的书 ...
- Love
愿这段代码陪我走过此生,献给我最爱的榨菜. /** *@Description:<p>我爱榨菜</p> *@author 王旭 *@time 2016年4月25日 下午7:58 ...
- jquery easyui dialog Bug解决方案
最近一直都在用easyui前端框架来开发设计UI,但在使用Dialog时,发现如果页面内容比较多,就会出现问题,首先看一下我的原代码: <input type="button" ...
- 转载:第二弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!每日更新!
今天一波三折,承受了超出预料的压力和煎熬,最后还是决定继续放出我的更新教程.我想我一没有泄露公司的代码,二没有提供泄露开发工具下载,只是从程序猿角度写了篇开发日志.我已经做好了最坏的准备,就算放弃这份 ...
- EF错误记录
纯属个人记录错误使用: 1.EntityType“area”未定义键.请为该 EntityType 定义键. 产生原因: 1.命名空间引用错误,可能命名重复导致引用错误 2.实体类无法识别主键或者未设 ...
- 11.22 点餐APP第一阶段总结
第一个冲刺结束了,任务也算是完成了. 团队合作不像单独做那样想怎么来就怎么来,各个人都不同的意见,最后方案的需要每个人一致同意通过才能执行. 不过团队合作分配到每个人的任务也相对轻一点,而且遇到问题解 ...
- 2015年百度之星初赛(1) --- D KPI
KPI Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- WinFrom子窗体向父窗体传值
父窗框mainForm;子窗体childForm,利用事件进行传值 在子窗体中的操作: public event EventHandler accept;public string value; pr ...
- javascript:Bing Maps AJAX Control, Version 7.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...