Swift初体验(两)
// 写功能初体验
func getMyName(firstName first:String, lastName last:String) -> String{ //return first + "-" + last
return first + last
}
var myName = getMyName(firstName: "hu", lastName: "mingtao")
println("myName = \(myName)") func getMyName1(#firstName:String, #lastName:String) -> String{ return firstName + lastName
}
var myName1 = getMyName(firstName: "hu", lastName: "mingtao")
println("myName1 = \(myName1)") func getMyName2WithFirstName(firstName:String, #lastName:String) -> String{ //return first + "-" + last
return firstName + lastName
}
var myName2 = getMyName2WithFirstName("hu", lastName: "mingtao")
println("myName2 = \(myName2)") func getMyName3(firstName:String, lastName:String) -> String{ //return first + "-" + last
return firstName + lastName
}
var myName3 = getMyName3("hu", "mingtao")
println("myName3 = \(myName3)") // "默认值"參数在函数调用的时候能够不写,编译器会自己主动调用声明时候设置的默认的值
// 编译器会自己主动为"默认值"參数创建一个和局部參数名称一样的外部參数名称
// 假设不想要编译器自己主动为"默认值"參数创建外部參数名称,那么须要在局部參数名称之前加"_"
func jionString(stringA:String, #stringB:String, _ joiner:String = "-") -> String{ return stringA + joiner + stringB
}
var resultString = jionString("hu", stringB: "mingtao", "100") func caculateMean(numbers: Int...) -> Double{ var sum = 0
for number in numbers{
sum += number
}
return Double(sum) / Double(numbers.count)
}
let mean = caculateMean(1,2,3,4,5,6)
println("\(mean)") func swap(inout a: Int, inout b: Int){ var temp = a
a = b
b = temp
}
var swapedValueA = 3
var swapedValueB = 5
// 交换值,相似于C语言,用&取地址传(代码也有提示功能)
swap(&swapedValueA, &swapedValueB) func add(a:Int, b:Int) -> Int{ return a + b
} func minus(a:Int, b:Int) -> Int{ return a - b
} func multiply(a:Int, b:Int) -> Int{ return a * b
} func divide(a:Int, b:Int) -> Int{ if b != 0{ return a / b
}
return 0
} var operate = add
let addResult = operate(3,5)
println("\(addResult)")
operate = minus
let minusResult = operate(5,3) func getOperate(operation: String) -> ((Int, Int) -> Int)?{ switch(operation){
case "+":
return add
case "-":
return minus
case "*":
return multiply
case "/":
return divide
default:
return nil
} } var operate2 = getOperate("+")
if let realOperate = operate2{
println("result = \(realOperate(3,5))")
} // 运算符重载
let a = 3
let b = 3.5
@infix func + (leftValue: Int, rightValue: Double) -> Double{
return Double(leftValue) + rightValue
}
let sum = a + b // 闭包
func sortArray(array: String[]) -> String[]{ let used: (String, String) -> Bool = {(stringA: String,stringB: String) -> Bool in return stringA > stringB}
let sortedArray = sort(array,{(stringA: String,stringB: String) -> Bool in stringA > stringB})
let sortedArray1 = sort(array,{(stringA: String,stringB: String) -> Bool in return stringA > stringB})
let sortedArray2 = sort(array,{stringA ,stringB in stringA > stringB})
let sortedArray3 = sort(array,{$0 > $1})
let sortedArray4 = sort(array,>)
let sortedArray5 = sort(array){(stringA: String,stringB: String) -> Bool in return stringA > stringB}
return sortedArray
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Swift初体验(两)的更多相关文章
- swift初体验
swift是一门类型安全的语言,同样也是基于c语言 那么c语言的一些类型也是实用的,不同的是:swift声明变量和常量是不一样的 let:用来修饰常量:var用来修饰变量 e.g: let num=1 ...
- Swift初体验之图案锁
这篇在应用上貌似没有价值,貌似我写了好多实际上都没有价值,这里贴出来就是分享下. 自己写swift好多天了,感觉好多东西还是不太懂,边学边做,互勉! 先上图: 代码:下载
- Swift初体验之HelloWord+苹果Swift编程语言新手教程【中文版】
AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.sw ...
- Swift初体验(三)
/*******************************************************************************/ // 协议 protocol Des ...
- Swift初体验 (一)
// 声明一个常量 let maxNumberOfStudents: Int = 47 // 声明一个变量,假设没有在声明的时候初始化,须要显示的标注其类型 var currentNumberOfSt ...
- swift基本体验
Swift初体验 1. 导入框架 2. 定义标识符: let/var 3. 语句结束时;可以省略 4. print() 5. let/var 6. 逻辑分支 7. 循环使用 // 1.Swift中如何 ...
- Swift与C++混编 OpenCV初体验 图片打码~
OpenCV初体验,给图片打码 提到OpenCV,相信大多数人都听说过,应用领域非常广泛,使用C++开发,天生具有跨平台的优势,我们学习一次,就可以在各个平台使用,这个还是很具有诱惑力的.本文主要记录 ...
- Node.js 网页瘸腿爬虫初体验
延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
随机推荐
- FTP文件操作之获取文件列表
前面已经介绍了很多关于FTP对文件的操作,今天再跟大家介绍一个获取文件列表的功能.这个功能应该算是最简单的一个了,它只是获取了一下文件信息,而没有进行实质上的数据传输. 下面是是该功能的核心代码: ...
- sails 相关文章
Node 框架之sails http://cnodejs.org/topic/555c3c82e684c4c8088a0ca1
- Android 深入解析光传感器(二)
光线传感器演示1 讲了一大堆的理论,那么以下的样例就来展示一下光线感应器的使用.为什么充分展现光感的用法,我这个样例写的很easy,仅仅写了使用光感必须的代码,然后用了几个textVie ...
- poj2386 Lake Counting(简单DFS)
转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj ...
- Java中关于OOM的场景及解决方法(转)
http://developer.51cto.com/art/201112/305696.htm 1.OOM for Heap=>例如:java.lang.OutOfMemoryError: J ...
- System.ComponentModel.BackgroundWorker在WinForm中的异步使用
为了防止操作过程中界面卡死,和WinForm搭配最适合的就是BackgroundWorker了.BackgroundWorker 类 using System; using System.Compon ...
- HDU 4917 Permutation
意甲冠军: 序列p1.p2.p3--pn由1.2.3--n这些数字 现在给出一些条件pi<pj 部条件的排列的个数 思路: 非常easy想到用一条有向的线连接全部的pi和pj 那么就构成了 ...
- poj3281-Dining ,最大流量,内置图
id=3281">点击打开链接 分析: 求最大流 建图: 拆点 牛拆成左边与食物相连的左牛 和 右边与饮料相连的右牛 1.s->食物 连边 2.食物->左牛 3.左牛-&g ...
- 使用一个T-SQL语句批量查询数据表占用空间及其行数
原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: U ...
- Sqlmap渗透测试是常用语句
1.获取站点信息 sqlmap.py -u http://.../ 2.获取站点的数据库信息 sqlmap.py -u http://../ --dbs 3.获取数据库DataBaseTest下的表 ...