Swift面向对象基础(中)——Swift中的方法
学习来自《极客学院》
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: , y: , width: , height: )
rect.moveByX(, y: )
println("矩形的左上角的x坐标为:\(rect.x),y坐标为\(rect.y)")
/*注意:常量类型的结构体,枚举时不可变的*/
运行结果是:
Swift面向对象基础(中)——Swift中的方法的更多相关文章
- Swift面向对象基础(上)——Swift中的类和结构体(上)
学习来自<极客学院> import Foundation //1.定义类和结构体 /* [修饰符]calss 类名{ 零到多个构造器 零到多个属性 零到多个方法 零到多个下标 } 修饰符可 ...
- Swift面向对象基础(上)——Swift中的枚举
Swift中枚举 学习笔记来自<极客学院> import Foundation /**********1*Swift定义枚举的语法格式*************/ /* enum 枚举名 ...
- Swift面向对象基础(上)——Swift中的类和结构体(下)
学习来自<极客学院> import Foundation class User { var name:String var age:Int init(name:String,age:Int ...
- Swift面向对象基础(中)——Swift中的存储属性和计算属性
学习来自<极客学院> 1.存储属性:存储在类.结构体里的变量或者常量 2.分为:实例存储属性.类型存储属性 3.所有的存储属性必须显示的指定初始值,在定义时或者构造器当中指定 4.可选类型 ...
- Python 面向对象基础(类、实例、方法、属性封装)
python是面向对象语言,一切皆对象. 面向过程: 变量和函数. “散落” 在文件的各个位置,甚至是不同文件中.看不出变量与函数的相关性,非常不利于维护,设计模式不清晰. 经常导致程序员,忘记某个变 ...
- 在Swift中使用JavaScript的方法和技巧
本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...
- swift 学习(三)(面向对象基础)
面向对象的基本特征包括:封装,继承,多态 在swift中,类,结构,枚举都具有面向对象特性 但结构和枚举的实例不称为对象,因为结构和枚举不是彻底的面向对象类型,比如他们不能继承. 结构体 struct ...
- 《Swift Programming Language 》——Swift中怎样使用继承(Inheritance)
一个类能够继承(inherit)还有一个类的方法(methods),属性(property)和其他特性.当一个类继承其他类时,继承类叫子类(subclass),被继承类叫超类(或父类,supercla ...
- swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析
showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性 ...
随机推荐
- 前端翻译:Promises/A+规范
原文地址:https://promisesaplus.com/ 本篇为原文翻译+个人理解,若有谬误请各位指正,谢谢. 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjoh ...
- linux内核更新前后配置文件的比较
说明:这里先给出一个比较的结果,作为记录,后续会给出内核配置差异的详细解释. [root@xiaolyu linux-4.7.2]# diff .config .config_bak 3c3< ...
- WatiN框架学习二——对弹窗的处理
以IE为例,WatiN处理弹出窗口: IE ie = new IE("string"); //打开指定web页 ie.Button(Find.ById("string&q ...
- [Solution] 使用Autofac在MVC、Web API、WCF中实现IOC
本来想聊一下面试过程的,1个星期面了6家,4家当场给offer,2家技术通过(1家没下文,1家复试).从中也学习到一些东西,先还是继续Coding吧. 官网:http://autofac.org/ 下 ...
- c# 文件另存为代码
利用.NET中的File.Copy方法 命名空间:System.IO 重载列表:Copy(string sourceFilePath,string targetFilePath) sourceFile ...
- imfong.com,我的新博客地址
imfong.com新博客采用jekyll+Github搭建,欢迎访问.
- 从苹果apns的feedback服务器获取推送失败的token
在开发自己的苹果推送服务时候,要合理的控制ios设备的Token,而这个Token是由苹果服务器Apns产生的,就是每次app问Apns要Token,由苹果服务器产生的Token会记录到Apns里面, ...
- 后缀数组---Milk Patterns
POJ 3261 Description Farmer John has noticed that the quality of milk given by his cows varies from ...
- Mybatis Physical Pagination
1. Requirements: when we use the sql like "select * from targetTable", we get all records ...
- java微信开发(wechat4j)——access_token中控服务器实现
access_token是与微信服务器交互过程中的一个凭证,每次客户服务器主动与微信服务器通信都需要带上access_token以确认自己的身份.wechat4j内部封装了对access_token的 ...