swift学习笔记4-函数
来源:互联网 发布:通联数据的量化平台 编辑:程序博客网 时间:2024/05/20 07:33
//函数
1.函数的定义与使用
//定义格式 func 函数名(参数类型:参数名,参数类型:参数名……) -> 返回类型
func greet(){
print("hello,swift")
}
greet()//hello.swift
func getMax(num1:Int,num2:Int) ->Int{
return max(num1, num2)
}
getMax(num1: 1, num2:-1)//1
2.为函数的参数设置默认值
func isPass(num1:Int,num2:Int=60){
if(num1>=num2){
print("pass")
}else{
print("fail")
}
}
//使用带默认参数的函数时,传参数时,可以忽略带参数的参数。
isPass(num1: 78)//pass
isPass(num1: 45,num2:10 )//fail
3.设置可变的函数参数数量
func getSum(nums:Double...) ->Double{//使用...添加在变量类型后面即可定义可变参数,表示该类型的参数数量不确定。一个函数最多只能
var sum:Double =0 //使用一个可变参数且可变参数只能位于其他参数之后
for temp in nums{
sum += temp
}
return sum
}
getSum()//0
getSum(nums: 24,151,1.2)//176.2
4.函数作为参数
func add(num1:Int,num2:Int) ->Int{
return num1+num2
}
func operationAdd(function:(Int,Int)->Int,num1:Int,num2:Int){
print("sum=\(function(num1,num2))")
}
operationAdd(function: add, num1: 7, num2: 8) //15
5.函数作为返回类型
func getBigger(num1:Int,num2:Int) ->Int{
return max(num1, num2)
}
func getSmaller(num1:Int,num2:Int) ->Int{
return min(num1, num2)
}
func choose(mychoose:Bool) -> (Int,Int) -> Int{ //返回一个函数,函数具有两个int的参数,并且返回类型为int
return mychoose ?getBigger:getSmaller
}
let mychoose = choose(mychoose:true)
mychoose(5,1)//5
6.元组作为返回类型
func getStudent() ->(name:String,sno:String){
let name = "zhangsan"
let sno = "110"
return (name,sno)
}
getStudent()//{name:"zhangsan",sno:"110"}
7.使用函数类型
//使用函数类型和使用其他类型类似。比如声明一个串类型的变量为var myString:String,相似的,声明一个函数类型的变量格式为 变量类型 变量名:函数(类型,)该变量的类型便为其返回值类型。
func getInstance(num1:Int,num2:Int) ->Int{
return num1 - num2
}
var function:(Int,Int) ->Int //定义了一个函数类型的变量,该类型为两个整型参数并返回整型的函数
function = getInstance//将该函数变量指向函数getinstanc
var result = function(5,4)//1
function = getBigger//将函数变量指向函数getBigger
result = function(0,7)//7
8.函数的输入输出参数
//函数的参数默认是常量,因而在函数体内是不能对参数的值进行修改的,如果需要在函数体内修改参数的值,并且这些修改在函数结束调用时仍然存在,需要在参数类型的前面添加inout标识,并在调用时在参数前面加上&
func changNumber( num1:inoutInt, num2:inoutInt){
let temp = num1
num1 = num2
num2 = temp
}
var num1 = 1
var num2 = 2
changNumber(num1: &num1,num2: &num2)
print("num1=\(num1),num2=\(num2)")//num1=2,num2=1
9.函数的嵌套
//将一个函数写在其他函数体内,便称为函数的嵌套,这样实现了函数的封装,其作用也不言而喻了
func chooseNumber(needBigger:Bool,num1:Int,num2:Int){
func getBigger(num1: Int, num2: Int){
print((num1>num2) ? num1:num2)
}
func getSmaller(num1: Int, num2: Int){
print((num1<num2) ? num1:num2)
}
needBigger ? getBigger(num1:num1,num2:num2):getSmaller(num1: num1, num2: num2)
}
chooseNumber(needBigger: false, num1: 7, num2: -7) //-7
10.函数的递归用法
//在函数体中直接或间接的调用自己,称之为函数的递归调用。
func total(num:Int) ->Int {
if(num<=1){
return 1
}else{
return total(num: num-2) +total(num:num-1)
}
}
total(num: 5)//8
11.常用的内置函数
//swift语言中自带的函数,可以直接调用
abs(-10)//求绝对值
max(4,5)//求最大值
min(2,4,0,15,0.5)//求最小值
for i in (1...10).filter({$0 %2 == 0}){
print(i)
}//使用filter进行条件筛选
for i in (1...10).map({$0*3}){
print(i)
}//使用map对数组进行转换
let getResult = (1...4).reduce(0, +)//10 使用reduce对数组进行计算操作并获得一个值
- Swift 学习笔记 4-函数
- swift学习笔记4-函数
- Swift学习笔记之函数
- Swift学习笔记(四)函数
- swift学习笔记(3)--函数
- Swift学习笔记之函数
- Swift学习笔记(8)--函数
- swift 学习笔记(18)-函数
- swift学习笔记5 函数
- 老猫swift学习笔记(四):函数
- 【Swift】学习笔记(六)——函数
- Swift 学习笔记 —— 函数
- swift学习笔记之函数(一)
- swift学习笔记之函数(二)
- Swift 学习笔记 - 分支,循环,函数
- Swift学习笔记 -- 函数和闭包
- 10.13 学习 函数式 swift 笔记 sort()
- swift学习笔记(6)-函数
- Webpack(打包工具)
- C++之vector容器操作演示
- ugui与ngui如何检测是否点击在UI上
- 一点一点学写Makefile(3)-增加第三方库和头文件
- 解决MySQL无服务问题
- swift学习笔记4-函数
- 洛谷P3960 [NOIp2017]列队
- manacher算法及扩展
- 输入输出系统(一)
- C语言中的深拷贝和浅拷贝
- 13. Lucky Numbers (easy)
- 运用webpack手动搭建项目结构
- 关于移动端触屏输入控制的API的使用汇总(一)
- VMware虚拟机安装centos7,登录时输入密码出现抱歉,没有奏效,请再试一遍。