Swift Function函数
来源:互联网 发布:java 多张图片 合成 编辑:程序博客网 时间:2024/06/14 16:15
一天一步,扎实前进
函数
简单的说,函数的存在就是让程序的可读性,维护性以及复用度得到提高.这是每种语言都存在的,只不过有的叫方法,有的叫函数而已.
不多说了,Code+注释就明白了
//// ViewController.swift// Function//// Created by NapoleonBai on 14-11-21.// Copyright (c) 2014年 NapoleonBai. All rights reserved.//import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.main() } func main(){ //其实之前的讲解中,也使用过函数定义,也简单提过 //正如同这样,定义一个main函数,使用关键字func /* 注意:Swift中的函数也是先声明,再使用的,否则会编译通不过直接抛出错误 定义函数格式: func funcName(){} //简单函数 func funcName(parmasName:type,parmasName:type...){} //带参数的函数 func funcName(parmasName:type) ->returnType { ... return returnType} //带有返回值的函数 基本上就这样,不停的不断地组合,跟其他语言都是一样的 */ //那怎么调用函数呢?其实之前已经用过,只是没有单独提出来说明一下 //eg: var flag = isEmpty("Napoleon") //the flag = true //这里调用函数,调用直接采用调函数名就好,因为是当前类中,当然,也可以写self.methodName() //那么,函数的返回值有什么要求呢? //eg: var userInfos = userInfo("小白杨") println("userInfos values = \(userInfos.0) and "+userInfos.1) //userInfos values = 99 and 熊猫血 //这里的话,可以看到,返回一个元组类型的数据也是没有问题的,可能很多时候会出现返回一个数组/集合/字典类型的数据,那是不是也可以呢? var array = getData() for temp in array{ println("the temp value = \(temp)") /* the temp value = value1 the temp value = value2 the temp value = value3 the temp value = value4 */ } //上面也看过了怎么返回一个数组, //当然了,返回一个字典类型的数据也是如此了,其实函数这个功能和OC差不多,只不过表现形式不同罢了,不然我们看看其他 //eg: setUserInfo(setUserName: "NapoleonBai", setUserAge: 23) //更加语义化的参数说明 //当然,这样实现也有两种方法,serUserInfo函数是一种,然后另一种请看 //eg: setBookInfo(setBookName: "happy Swift", setBookPrice: 99.9) //谈谈可变形参的函数 //当然了,形参就不用多说了吧:简单地说就是定义函数的时候()中的参数 //eg: setPrice(23.3,24.5,22.6,35.7) //这个括号中,可以传任意个浮点类型值,这就是可变参数的神奇之处 //注意: /* Swift语言中得形参默认是常量,意思就是说,在函数体内部,我们是不能改变参数的值的.也就是说函数的形参默认是指类型的.但是 如果需要在函数体内部修改参数,那又该怎么做呢? */ //eg: updateParmas("NapoleonBai",age: 23) //这里的age是一个变量参数 //上面也说过,形参只是按值传递的,就算修改了参数的值,那么实参的值还是没有办法修改,那这个操作能不能实现呢? //所谓实参:比如上面的23,就是一个实参,当然了,开发中,这肯定是一个有名称的变量,所以,如果我们要在函数体中修改传入的形参来达到修改这个变量的值,那我们继续往下看 //好吧,我们再来谈谈 //eg: var name = "小白杨" //name = "小白杨" updateAll(&name) println("the name = \(name)") //the name = NapoleonBai //是不是很神奇,达到要求了吧,嘻嘻 //原因就是我们使用了关键字:inout,这样传入的就是地址了,从而达到修改实参的目的 /* 注意: inout标记的参数,不能传常量和字面量(上面的23这样的) 不能同时将形参标记为let,var,inout 可变参数不能标记为inout 函数不能有默认值 */ //嵌套函数 //eg: var temp = outFunction("<hello swfit>", price: 23) println(temp) //a <hello swfit> book need $46 } //嵌套函数 func outFunction(name : String,price : Int) ->String{ func inFunction(isPrice : Int)->String{ return String(isPrice * 2) } var temp = inFunction(price) return "a "+name+" book need $"+temp } //修改形参实现修改实参,使用inout关键字 func updateAll(inout Name : String){ Name = "NapoleonBai" } //尝试更改参数值 func updateParmas(name : String,var age : Int){ //name = "小白杨" //error:Cannot assign to 'let' value 'name' 不可修改 age = 33 //可修改 } //可变形参函数 //一个函数只允许一个可变参数,通过' ... '来实现,而且这个可变参数必须放置在最后面 func setPrice(price : Float ...){ for priceTemp in price{ println("the priceTemp = \(priceTemp)") //通过循环来获取可变参数值 /* the priceTemp = 23.3 the priceTemp = 24.5 the priceTemp = 22.6 the priceTemp = 35.7 */ } } //这个函数就可以看出,setUserName和setUserAge本来就没有什么特殊意义,就是类似于说明文字一样,跟OC中的功能一样吧 func setUserInfo(setUserName userName : String,setUserAge age :Int){ } //这样也可以实现上面的那种显示功能,只是简化了重复命名而已,别无其他 func setBookInfo(#setBookName : String , setBookPrice : Float){ } //返回一个数组 func getData() -> Array<String>{ //这里也补充说明一下,数组这样声明其实是最正式的声明方式 //在声明的时候就指定参数类型,然后按照类型进行添加 var arrays = Array<String>() arrays.append("value1") arrays.append("value2") arrays.append("value3") arrays.append("value4") return arrays } //返回一个元组类型 func userInfo(userName : String) ->(Int,String){ if userName == "NapoleonBai"{ return (23,"A型血") }else{ return (99,"熊猫血") } } //创建一个有参数,有返回值函数 func isEmpty(str : String) ->Bool{ if str.isEmpty{ return true }else{ return false } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
当然了,里面也不是说的很完整,不过基础带过了就好了...嘻嘻
有什么问题,大家可以一起讨论哟...
独乐了不如众乐乐...come on!
0 0
- Swift Function函数
- Swift-函数(Function)
- Swift Function函数
- Swift 3.0 函数(Function)
- Swift学习笔记6——函数(Function)
- Swift Function & Closure
- Swift中的Function
- swift-function用法
- function Function函数
- 函数 function
- Function函数
- function函数
- 函数Function
- 函数function
- 函数function
- Swift函数
- Swift函数
- swift 函数
- linux系统2440开发板域名解析问题
- 每日一道算法题:字符串反转
- Enhanced Drawing & Painting
- 选择爱人的数学方法(经典秘书问题)
- Mouse Selection & Highlighting
- Swift Function函数
- laravel安装
- Scrolling with the Mouse
- redis---list类型
- Margins and Long Lines
- 用NEXUS搭建MAVEN私服
- 数据库连接池C3P0参数解释
- Introduction to Unicode
- Unicode Text Processing