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单例模 ...
随机推荐
- canvas剪裁图片并上传,前端一步到位,无需用到后端
背景: 当前主流的图片剪裁主要有两种实现方式. 1:flash操作剪裁.2:利用js和dom操作剪裁. 目前看来这个剪裁主要还是先通过前端上传图片到服务器,然后前端操作后把一些坐标和大小数据传到后台, ...
- 前端技术Bootstrap的hello world
----对于用户来说,界面就是程序本身.那么一个漂亮的web一定是你继续使用这个应用的前题. 这一节我们来一起写个Bootstrap的hello wrold. Bootstrap Bootstrap ...
- [linux]查看linux下端口占用
netstat netstat -an | grep 23 (查看是否打开23端口) 查看端口占用情况的命令:lsof -i [root@www ~]# lsof -i COMMAND PID USE ...
- Action接收页面传来的参数方法
接收页面传来的参数方法 1.第一种:在action中设置相应的变量 在相应的action中设置与将要传进来的参数名相同的变量 eg: 页面传给后台两个参数 name=chance & age ...
- 3D拓扑自动布局之Web Workers篇
2D拓扑的应用在电信网管和电力SCADA领域早已习以为常了,随着OpenGL特别是WebGL技术的普及,3D方式的数据可视化也慢慢从佛殿神堂步入了寻常百姓家,似乎和最近高档会所被整改为普通茶馆是一样的 ...
- .Net 自定义应用程序配置
.Net 自定义应用程序配置 引言 几乎所有的应用程序都离不开配置,有时候我们会将配置信息存在数据库中(例如大家可能常会见到名为Config这样的表):更多时候,我们会将配置写在Web.config或 ...
- [爬虫学习笔记]用于提取网页中所有链接的 Extractor 模块
Extractor的工作是从下载的网页中将它包含的所有URL提取出来.这是个细致的工作,你需要考虑到所有可能的url的样式,比如网页中常常会包含相对路径的url,提取的时候需要将它转换 ...
- Python OOP(1):从基础开始
本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassName(object): """docstring for ClassNam ...
- Python好用的网站收集
第三方Pthon包查找:http://www.lfd.uci.edu/ http://www.cnblogs.com/lanxuezaipiao/p/3543658.html
- 三通短信每月发送量导入Sqlserver随笔
创建表sql CREATE TABLE SmsSentLog2014101625( Phone NVARCHAR(MAX), MessageContent NVARCHAR(MAX), Message ...