初学swift_002
来源:互联网 发布:云南大学软件学院导师 编辑:程序博客网 时间:2024/06/06 23:55
函数
//: Playground - noun: a place where people can playimport UIKit//基本的函数func first() {//无参,无返回 print("first")}first()func first2() -> String {//返回字符串 return "abc"}first2()let r = first2()rlet _ = first2() //下划线忽略不管func first3(a:Int) ->Int { print(a) return 5}first3(a: 4)//first3(3) //不能省略a//subString(startIndex:1,length:3)swift的语法理念是语法越长越容易理解和阅读func add(firstNumber: Int ,addWithSecond: Int) -> Int { return firstNumber + addWithSecond}add(firstNumber: 3, addWithSecond: 4)//add(addWithSecond: 6, firstNumber: 5 )//不能改变顺序//参数忽略的问题func add(_ firstNumber: Int ,addWithSecond: Int) -> Int { return firstNumber + addWithSecond}add(5, addWithSecond: 6)func add(_ firstNumber: Int ,_ addWithSecond: Int) -> Int { return firstNumber + addWithSecond}add(50, 6)//a,和b成为外部参数,argument label(参数标签)//a和b不能在函数体内使用,只能调用时使用func add(a firstNumber: Int ,b addWithSecond: Int) -> Int { return firstNumber + addWithSecond}add(a:5, b: 6)/************ 可变长度,默认值 *///code snippet//参数可变长度func add(numbers: Int...) -> Int { var total = 0 for item in numbers { total += item } return total}add(numbers: 1,2,3)//参数有默认值func add(num1: Int = 2,num2: Int = 3) ->Int{ return num1 + num2}add(num1: 5)add(num1: 2, num2: 5)add()add(num1: 5, num2: 6)add(num2: 3)//add(num2: 5, num1: 6) //不能改变顺序func add(num1: Int = 2,num2: Int = 3,num3: Int) ->Int{ return num1 + num2 + num3}add(num3: 5)add(num1: 1, num2: 2, num3: 3)add(num1: 4, num3: 6)/******* 函数类型 在swift中,函数是第一等的公民,意味着与类同级别 */let f: (Int,Int)->Intfunc test1(a: Int,b: Int) -> Int { return 5}f = test1f(5, 6)let f2: ()-> Voidfunc test2(){}f2 = test2f2()func outer(inner:(Int)->Void) {//函数作为参数传递进去 inner(5)}func test3(a: Int) { print(a)}outer(inner: test3)func demo(doFilter:(Int)-> Bool ) ->[Int]{ let arr = [1,2,6,8,99,6,33] var result :[Int] = [] for item in arr { if doFilter(item){ result.append(item) } } return result}func guolv1(a: Int) -> Bool { if a > 30 { return true } return false}func guolv2(a: Int) -> Bool { if a % 2 == 0 { return true } return false}let rr = demo(doFilter: guolv2)rrfunc each(handler: (Int,Int)->Void) { let arr = [1,2,6,8,99,6,33] for i in 0..<arr.count { handler(i,arr[i]) }}func myHandler(index: Int,value: Int) { print("index is \(index) value is \(value)")}each(handler: myHandler)func aaa() -> Void { print("this fun is called outer")}func outer2() -> ()->Void {//函数作为返回值返回 return aaa}func outer3() -> ()->Void { func bbb() -> Void { print("this fun is called outer") } return bbb}let recFun = outer2()recFun()outer3()()func outer4(f:()->Void) -> (Int,Int)->(Int,Int) {//函数同时作为参数和返回值 f(); func temp(a: Int,b: Int)-> (Int,Int) { return(a + b,a * b) } return temp}func forOuter4() { print("for outer4")}let outer4Result = outer4 (f:forOuter4)let outer4ResultResult = outer4Result(5,6)outer4ResultResult.0outer4ResultResult.1
0 0
- 初学swift_002
- swift_002(Swift的String的基本使用)
- 初学...
- 初学
- 初学
- 初学
- 初学
- 初学
- 初学
- 初学
- 初学数据仓库
- 初学Struts
- 初学Struts
- 初学触发器
- 初学Ant.
- Action 初学
- 初学.net
- 初学uml
- Android中不能静态注册的广播
- Android N上语言列表
- 01-redis学习第一章
- 代码质量之命名(一)[部分看来的部分自己感悟]
- Http响应案例、Http响应编码问题、Servlet项目编码问题总结图
- 初学swift_002
- 记一次写Java项目启动管理脚本
- ROS进二阶学习笔记(2)- SMACH:用状态机来管理机器人任务
- Oracle数据库简单查询的流程
- 协同过滤算法笔记
- noip模拟11.16~11.17总结
- linux kernel总结
- 07-redis学习第七章
- ASP.NET Ajax 三层架构 考试系统实现(试卷模块,考试模块,评分模块,计时模块)