Swift面向对象基础(中)——Swift中的方法
2015-07-16 15:58
471 查看
学习来自《极客学院》
1、定义方法需要在类型(枚举,结构体,类)里定义,不能独立定义,独立定义的是函数
2、方法要么属于该类型本身,要么是该类型的一个实例
3、不能独立执行方法,执行方法必须使用类型或实例作为调用者
注意:枚举、结构体中方法使用static修饰,类中用class修饰,都属于类型方法,否则的话属于实例方法
运行结果是:
1、定义方法需要在类型(枚举,结构体,类)里定义,不能独立定义,独立定义的是函数
2、方法要么属于该类型本身,要么是该类型的一个实例
3、不能独立执行方法,执行方法必须使用类型或实例作为调用者
注意:枚举、结构体中方法使用static修饰,类中用class修饰,都属于类型方法,否则的话属于实例方法
import Foundation class SomeClass{ func test(){ println("====test 方法 ======") } class func bar(#msg:String){ println("====bar 方法 ======,传入的参数为:\(msg)") } } //创建实例 var sc = SomeClass() //将sc的test方法分离成函数,前面类型用()->()表示函数类型,后面的取方法不能带上() var f1:()->() = sc.test//如果带上括号就是调用实例的方法 //将sc的bar方法分离成函数 var f2:(String)->Void = SomeClass.bar //然后使用f1()就相当于调用的就是sc.test() f1() //然后使用f2()就相当于调用的就是SomeClass.bar(msg:) f2("hello") //************方法的外部形参名*************// class Person{ var name:String init(name:String){ self.name = name } func eat(food:String, _ drink:String ,cigarette:String){ println("\(self.name)吃着\(food)喝着\(drink)抽着\(cigarette)") } } var p = Person(name: "Tom") p.eat("烤鸭", "啤酒", cigarette: "雪茄") /*Swift默认为除第一个参数外部添加了外部参数名,与局部参数名一样,如果不需要的话,则用_下划线的方式去掉,添加了外部参数名,不是添加了#号*/ /************值类型的可变方法*************/ struct JKRect { var x:Int var y:Int var width:Int var height:Int mutating func moveByX(x:Int,y:Int){ self.x += x self.y += y } } var rect = JKRect(x: 20, y: 12, width: 200, height: 300) rect.moveByX(100, y: 90) println("矩形的左上角的x坐标为:\(rect.x),y坐标为\(rect.y)") /*注意:常量类型的结构体,枚举时不可变的*/
运行结果是:
相关文章推荐
- Swift中NSDictionaryOfVariableBindings的替代方案
- Swift_闭包
- Swift的build configurations是如何支持条件编译的?
- swift2 集合类型
- Swift面向对象基础(中)——Swift中的存储属性和计算属性
- Swift中使用正则表达式的一些方法
- 简单分析Swift语言的一些基本特征
- Swift实现UIKit Dynamic动画
- 浅谈在Swift中关于函数指针的实现
- Swift中共有74个内建函数
- 在Mac OS的终端中运行Swift应用的方法
- Swift iOS开发中出现“no such module cocoa”的错误
- 在Swift程序中实现手势识别的方法
- swift闭包总结
- Swift面向对象基础(上)——Swift中的类和结构体(下)
- swift2 字符与字符串
- Swift面向对象基础(上)——Swift中的类和结构体(上)
- Swift面向对象基础(上)——Swift中的枚举
- Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)
- Swift学习笔记系列——(8)类和结构体