首页 技术 正文
技术 2022年11月14日
0 收藏 464 点赞 3,824 浏览 2892 个字

今天我们要讲的就是函数【对于函数,在最后面还有几道题,喜欢的博友可以看了自己做一下,和我交流一下】

当然这与我们的c语言还是有一定的共同之处的,对于有一些c语言或者是java基础的童鞋,我觉得是很容易的。

定义函数的语法为:【注意一些书写格式】

    func 函数名(参数1: 类型1,参数2:类型2)-> 返回类型{代码块}

在本节课我们将涉猎到函数的参数为函数返回值为函数等情况

第二课时:

 //: Playground - noun: a place where people can play import UIKit
//基本的函数
func first() {
print("first")
}
first() func first2() -> String {
return "abc"
}
first2()
let r = first2()
r
let _ = first2() //下划线忽略不管 func first3(a:Int) ->Int {
print(a)
return
}
first3(a: )
//first3(3) //不能省略a //subString(startIndex:1,length:3)
//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)->Int
func test1(a: Int,b: Int) -> Int {
return
}
f = test1
f(, ) let f2: ()-> Void
func test2(){ }
f2 = test2
f2() func outer(inner:(Int)->Void) {
inner()
}
func test3(a: Int) {
print(a)
}
outer(inner: test3) func demo(doFilter:(Int)-> Bool ) ->[Int]{
let arr = [,,,,,,]
var result :[Int] = []
for item in arr {
if doFilter(item){
result.append(item)
} }
return result
} func guolv1(a: Int) -> Bool {
if a > {
return true
}
return false
} func guolv2(a: Int) -> Bool {
if a % == {
return true
}
return false
} let rr = demo(doFilter: guolv2)
rr func each(handler: (Int,Int)->Void) {
let arr = [,,,,,,] for i in ..<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(,)
outer4ResultResult.
outer4ResultResult. /*作业
1.写一个函数,有一个参数参数,表示的意思是记录的总条数
,第二个参数,表示每页显示的记录数量,默认值为2
函数返回的结果就是一个Int的数组,表示页码
generatePages(records: Int,pageSize: Int = 2){ }
generatePages(7) -> [1,2,3,4] 2。找出swift语言的类似Math.Ceiling的函数出来 3.设计一个函数,在其基础上,生成一系列的超链接字符串数组
["a.aspx?pageno = 1",
"a.aspx?pageno = 2
"a.aspx?pageno = 3
] */

IOS系列之二就到这里结束了,其实函数的知识还有很多,就不在这里一一解剖了.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,294