1,无返回值的函数
1
2
3
func test(name: String ){
}

2,返回一个返回值
) -> Bool{
return true
}

3,返回由多个值组成的复合返回值
3
4
5
) -> ( Int , var position = 1
visible = false
return (position,visible)
}

4,可变形参:可以接受0个或者任意数量的输入参数
5
6
7
test(numbers: ...) -> count: = 0
for number in numbers{
count += number
}
count
}

5,在Swift函数中,参数默认是常量。如果要改变参数的值,就需要在定义函数的时候加上关键字var。(外部的参数任然不会被修改)
7
8
9
10
11
12
age = 22
add(age)
//无法编译
add(age: ) {
age += 1
}
//可以编译
add( age: ) {
age += 1
}

6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”
add(&age)
print (age) //23
inout ){
}

7,可以使用函数类型的参数
10
additive(a: ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas,b: a + b
}
//函数类型的参数
printAdditiveResult(addFun: ( ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas,a: ){
( "Result:\(addFun(a,b))" )
}
printAdditiveResult(additive,a: 5,b: 7)

8,也可以使用函数类型的返回值
12
13
14
15
16
17
18
//定义个自增函数
increase(input: {
input + 1
}
//定义个自减函数
reduce(input: {
input - 1
}
//定义一个返回函数类型的函数
chooseFunction(backwards: {
backwards ? reduce : increase
}
//测试
let aFun = chooseFunction(3>2)
(aFun(3)) //2

原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_517.html

Swift - 自定义函数规则说明的更多相关文章

  1. Swift学习: 从Objective-C到Swift

    希望这篇文章能够帮助已经有Objective-C经验的开发者更快地学习Swift。我们熟悉的Objective-C特性在Swift中如何展现。从Objective-C到Swift的进步改进。然后值得注意的是,在Objective-C中,我们可以跨过property直接与instancevariable打交道,而在Swift是不可以的。ASwiftpropertydoesnothaveacorrespondinginstancevariable,andthebackingstoreforapropertyi

  2. Swift - 自定义函数规则说明

    如果要改变参数的值,就需要在定义函数的时候加上关键字var。789101112age=22add//无法编译add{age+=1}//可以编译add{age+=1}6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”addprint//23inout){}7,可以使用函数类型的参数10additive(a:ottom:auto!important;font-family:Consolas,b:a+b}//函数类型的参数printAdditiveResult

  3. Swift - 类初始化和反初始化方法init与deinit

    important;font-family:Consolas,newAge:32)print2,deinit():类反初始化方法11DBClass{conn:Connection?=()deinit{//可以做一些清理工作.conn!.close().conn=nil}db:()db=nil//设置nil后即可执行deinit()方法

  4. Swift - 下标脚本方法介绍及实例

    定义下标脚本之后,可以使用“[]”来存取数据类型的值。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960classSubString{varstr:String=""init{self.str=str;}/**下标脚本:获取/设置部分字符串**/subscript->String{get{return.substringWithRang

  5. Swift - 分段选择控件UISegmentedControl的用法

    ]as[AnyObject]segmented=UISegmentedControlsegmented.center=self.view.centersegmented.selectedSegmentIndex=1//默认选中第二项segmented.addTarget(ottom:auto!important;font-family:Consolas,forControlEvents:UIControlEvents.ValueChanged)//添加值改变监听.view.addSubview}segme

  6. Swift - 微调器或叫步进器UIStepper的用法

    1,微调器控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整。overridefuncviewDidLoad(){super.viewDidLoad()stepper=()stepper.center=self.view.center//设置stepper的范围与初始值stepper.maximumValue=10stepper.minimumValue=1stepper.value=5.5//设置每次增减的值stepper.stepValue=0.5//设置stepper可以按住不

  7. Swift - 搜索条UISearchBar的用法

    ShowsCancelButton:勾选后,搜索框右边会出现一个“Cancel”按钮,单击会发送特殊事件。ShowsScopeBar:勾选后,会在搜索条下面出现一个分段控制器。2,下面是一个搜索条的使用样例,功能如下:在Main.storyboard界面里拖入一个SearchBar和一个TableView,SearchBar放到TableView的页眉位置初始化或者搜索条为空时,表格显示所有数据搜索条不为空时,表格实时过滤显示匹配的项目3,效果图4,代码如下123456789101112131415161

  8. Swift - 使用网格UICollectionView进行流布局

    默认是Flow流式布局。2,勾选CollectionViewController属性面板里的IsInitialViewController复选框,设置为启动视图控制器。3,在CollectionViewCell里拖入一个ImageView和Label并摆放好位置和大小,用于显示图标和名称。4,设置ImageView的tag为1,Label的2,ColletionViewCell的Identifier为designviewCell。asUICollectionViewCell//从界面查找到控件元素并设置属

  9. Swift - 网页控件UIWebView加载本地数据,文件

    overridefuncviewDidLoad(){super.viewDidLoad()//默认选中分段控件的第一项loadtype.selectedSegmentIndex=0typeChanged}@IBActiontypeChanged{letindex=sender.selectedSegmentIndexprintswitchindex{case0://在UIWebView中显示HTML内容html="欢迎来到:航歌";webview.loadHTMLString1://在UIWebView中

  10. Swift - 自定义UIActivity分享

    UIActivity可以十分方便地将文字、图片等内容进行分享,比如分享到微信、微博、发送邮件、短信等等。下面通过继承UIActivity实现定制按钮和功能,通过调用UIActivityViewController来展示分享框。,NSURL]//新建自定义的分享对象数组acts=[WeiXinActivity(),147)!important;font-family:Consolas,UIActivityTypePrintUIActivityTypeAssignToContactUIActivityType

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部