1. // 写功能初体验
  2. func getMyName(firstName first:String, lastName last:String) -> String{
  3.  
  4. //return first + "-" + last
  5. return first + last
  6. }
  7. var myName = getMyName(firstName: "hu", lastName: "mingtao")
  8. println("myName = \(myName)")
  9.  
  10. func getMyName1(#firstName:String, #lastName:String) -> String{
  11.  
  12. return firstName + lastName
  13. }
  14. var myName1 = getMyName(firstName: "hu", lastName: "mingtao")
  15. println("myName1 = \(myName1)")
  16.  
  17. func getMyName2WithFirstName(firstName:String, #lastName:String) -> String{
  18.  
  19. //return first + "-" + last
  20. return firstName + lastName
  21. }
  22. var myName2 = getMyName2WithFirstName("hu", lastName: "mingtao")
  23. println("myName2 = \(myName2)")
  24.  
  25. func getMyName3(firstName:String, lastName:String) -> String{
  26.  
  27. //return first + "-" + last
  28. return firstName + lastName
  29. }
  30. var myName3 = getMyName3("hu", "mingtao")
  31. println("myName3 = \(myName3)")
  32.  
  33. // "默认值"參数在函数调用的时候能够不写,编译器会自己主动调用声明时候设置的默认的值
  34. // 编译器会自己主动为"默认值"參数创建一个和局部參数名称一样的外部參数名称
  35. // 假设不想要编译器自己主动为"默认值"參数创建外部參数名称,那么须要在局部參数名称之前加"_"
  36. func jionString(stringA:String, #stringB:String, _ joiner:String = "-") -> String{
  37.  
  38. return stringA + joiner + stringB
  39. }
  40. var resultString = jionString("hu", stringB: "mingtao", "100")
  41.  
  42. func caculateMean(numbers: Int...) -> Double{
  43.  
  44. var sum = 0
  45. for number in numbers{
  46. sum += number
  47. }
  48. return Double(sum) / Double(numbers.count)
  49. }
  50. let mean = caculateMean(1,2,3,4,5,6)
  51. println("\(mean)")
  52.  
  53. func swap(inout a: Int, inout b: Int){
  54.  
  55. var temp = a
  56. a = b
  57. b = temp
  58. }
  59. var swapedValueA = 3
  60. var swapedValueB = 5
  61. // 交换值,相似于C语言,用&取地址传(代码也有提示功能)
  62. swap(&swapedValueA, &swapedValueB)
  63.  
  64. func add(a:Int, b:Int) -> Int{
  65.  
  66. return a + b
  67. }
  68.  
  69. func minus(a:Int, b:Int) -> Int{
  70.  
  71. return a - b
  72. }
  73.  
  74. func multiply(a:Int, b:Int) -> Int{
  75.  
  76. return a * b
  77. }
  78.  
  79. func divide(a:Int, b:Int) -> Int{
  80.  
  81. if b != 0{
  82.  
  83. return a / b
  84. }
  85. return 0
  86. }
  87.  
  88. var operate = add
  89. let addResult = operate(3,5)
  90. println("\(addResult)")
  91. operate = minus
  92. let minusResult = operate(5,3)
  93.  
  94. func getOperate(operation: String) -> ((Int, Int) -> Int)?{
  95.  
  96. switch(operation){
  97. case "+":
  98. return add
  99. case "-":
  100. return minus
  101. case "*":
  102. return multiply
  103. case "/":
  104. return divide
  105. default:
  106. return nil
  107. }
  108.  
  109. }
  110.  
  111. var operate2 = getOperate("+")
  112. if let realOperate = operate2{
  113. println("result = \(realOperate(3,5))")
  114. }
  115.  
  116. // 运算符重载
  117. let a = 3
  118. let b = 3.5
  119. @infix func + (leftValue: Int, rightValue: Double) -> Double{
  120. return Double(leftValue) + rightValue
  121. }
  122. let sum = a + b
  123.  
  124. // 闭包
  125. func sortArray(array: String[]) -> String[]{
  126.  
  127. let used: (String, String) -> Bool = {(stringA: String,stringB: String) -> Bool in return stringA > stringB}
  128. let sortedArray = sort(array,{(stringA: String,stringB: String) -> Bool in stringA > stringB})
  129. let sortedArray1 = sort(array,{(stringA: String,stringB: String) -> Bool in return stringA > stringB})
  130. let sortedArray2 = sort(array,{stringA ,stringB in stringA > stringB})
  131. let sortedArray3 = sort(array,{$0 > $1})
  132. let sortedArray4 = sort(array,>)
  133. let sortedArray5 = sort(array){(stringA: String,stringB: String) -> Bool in return stringA > stringB}
  134. return sortedArray
  135. }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

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. 基于ICSharpCode.SharpZipLib.Zip的压缩解压缩

    原文:基于ICSharpCode.SharpZipLib.Zip的压缩解压缩 今天记压缩解压缩的使用,是基于开源项目ICSharpCode.SharpZipLib.Zip的使用. 一.压缩: /// ...

  2. 认识Backbone (三)

    Backbone.Collection(集合)  collection是model对象的一个有序的组合,我们可以在集合上绑定 "change" 事件,从而当集合中的模型发生变化时f ...

  3. 引用第三方框架 不支持ARC

    我们会常常遇到一个问题就是引用第三方框架之后发现不支持内存的自己主动处理(ARC) 我们须要这样来操作: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdT ...

  4. Linux高性能server规划——多线程编程(在)

    多线程编程 Linux主题概述 线程模型 线程是程序中完毕一个独立任务的完整执行序列.即一个可调度的实体. 依据执行环境和调度者的身份.线程可分为内核线程和用户线程.内核线程,在有的系统上也称为LWP ...

  5. 非常基本的SQL 内外连接

    有些问题一直很郁闷,例如:为什么会存在大约在同一时间连接这个东西.如果外键为空,创建问题的声明时,将有一个外键约束失败. 后来,在精心研究,恩.外部连接(左连接.正确的连接). 事实上都是非常基础的东 ...

  6. SQL Server 2008 新增T-SQL 简写语法

    1.定义变量时可以直接赋值 DECLARE @Id int = 5 2.Insert 语句可以一次插入多行数据 INSERT INTO StateList VALUES(@Id, 'WA'), (@I ...

  7. MySQL各种日期类型与整型(转)

    日期类型 存储空间 日期格式 日期范围 datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 t ...

  8. sqlite3触发器的使用

    研究了一下osx下dock中应用的存储,位于~/Library/Application Support/Dock/下一个比較名字比較长的db文件里,之前简单的介绍过osx launchpad图标的删除 ...

  9. jconsole 连接 eclipse启动项

    eclipse 启动java项目默认情况下不开启jmx远程观看,假设需要看看内存使用情况对项目执行的线程等信息,能eclipse添加启动参数: -Dcom.sun.management.jmxremo ...

  10. 玩转Web之Jsp(二)-----jsp中怎么使用CKEditor

    在BBS项目或其他一些项目中,我们会发现别人写的一些文本域非常漂亮,而且有多种功能,这是怎么做到的呢?其实通过在jsp文件中引用在线编辑器即可,这里以CKEditor为例. 首先下载CKEditor: ...