//  写功能初体验
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初体验(两)的更多相关文章

  1. swift初体验

    swift是一门类型安全的语言,同样也是基于c语言 那么c语言的一些类型也是实用的,不同的是:swift声明变量和常量是不一样的 let:用来修饰常量:var用来修饰变量 e.g: let num=1 ...

  2. Swift初体验之图案锁

    这篇在应用上貌似没有价值,貌似我写了好多实际上都没有价值,这里贴出来就是分享下. 自己写swift好多天了,感觉好多东西还是不太懂,边学边做,互勉! 先上图: 代码:下载

  3. Swift初体验之HelloWord+苹果Swift编程语言新手教程【中文版】

    AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.sw ...

  4. Swift初体验(三)

    /*******************************************************************************/ // 协议 protocol Des ...

  5. Swift初体验 (一)

    // 声明一个常量 let maxNumberOfStudents: Int = 47 // 声明一个变量,假设没有在声明的时候初始化,须要显示的标注其类型 var currentNumberOfSt ...

  6. swift基本体验

    Swift初体验 1. 导入框架 2. 定义标识符: let/var 3. 语句结束时;可以省略 4. print() 5. let/var 6. 逻辑分支 7. 循环使用 // 1.Swift中如何 ...

  7. Swift与C++混编 OpenCV初体验 图片打码~

    OpenCV初体验,给图片打码 提到OpenCV,相信大多数人都听说过,应用领域非常广泛,使用C++开发,天生具有跨平台的优势,我们学习一次,就可以在各个平台使用,这个还是很具有诱惑力的.本文主要记录 ...

  8. Node.js 网页瘸腿爬虫初体验

    延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器 ...

  9. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

随机推荐

  1. js右侧悬浮框

    示例:屏幕右侧悬浮框 原理:oDiv.style.top = document.documentElement.clientHeight - oDiv.offsetHeight + scrollTop ...

  2. 最简单的视频编码器:基于libx265(编码YUV为H.265)

    ===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...

  3. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API [索引页][源码下载] 返璞归真 asp.net mvc (10) - asp.net ...

  4. int a[5]={1,2,3,4,5};printf(&quot;%d\n&quot;, *((int*)(&amp;a+1)-2);

    有说服力的笔试题有一定的期限,问:什么是结果,答案是4,为什么要挤? 我明白(不知道是不正确): &a这是一个数组指针,类型int[5],然后&a添加1其实a+sizeof(int)* ...

  5. 高速压缩跟踪(fast compressive tracking)(CT)算法分析

    本文为原创,转载请注明出处:http://blog.csdn.net/autocyz/article/details/44490009 Fast Compressive Tracking (高速压缩跟 ...

  6. 深入理解Android中ViewGroup

    文章目录   [隐藏] 一.ViewGroup是什么? 二.ViewGroup这个容器 2.1 添加View的算法 2.1.1 我们先来分析addViewInner方法: 2.1.2 addInArr ...

  7. Unity3d 实时折射和反射

    这里只是张贴在实时折射和脚本反思shader, 大约NGUI第一部分请下载. 这个版本的主要缺点是折射平面部Layer必须是water层.假设有专家谁可以摆脱这一个.请记得把代码回该条,谢谢! Wat ...

  8. Android 实现蘑菇街购物车动画效果

    版本号:1.0  日期:2014.8.6 版权:© 2014 kince 转载注明出处   使用过蘑菇街的用户基本上都知道有一个增加购物车的动画效果,此处不详细描写叙述想知道的能够去下载体验一下. 1 ...

  9. 修改Hosts不生效的一个场景-web(转)

    Update: 如果浏览器使用了代理工具,修改 Hosts 也不会生效.这里是因为,浏览器会优先考虑代理工具(如添加 pac 文件.SwitchySharp等)的代理,建议调试的时候先关闭这些代理. ...

  10. 如何定义AIDL跨进程间通信

    当进程A要去调用进程B中的service时,并实现通信,我们通常都是通过AIDL来操作的 projectA: 首先在我们自己的包com.wzp.aidlservice中创建一个RemoteServic ...