Swift学习笔记十一:方法
方法是与某些特定类型相关联的功能/函数。在Swift中,结构体和枚举能够定义方法;其实这是Swift与C/Objective-C的主要差别之中的一个。
在Objective-C中,类是唯一能定义方法的类型。
1. 实例方法(Instance Methods)
1. 基本使用
顾名思义,实例方法就是实例能够调用的方法。以下让我们直接上代码吧
class Counter {
var count: Int = 0
func incrementBy(amount: Int, numberOfTimes: Int) {
count += amount * numberOfTimes
}
}
let a = Counter()
a.incrementBy(1,numberOfTimes:1)
重点:
① 方法其实是特殊的函数,全部函数的规则在方法中均适用
② 基于书写规范,方法的命名尽量要表达出这种方法的作用。以及每一个參数的作用
③ 能够看到我们调用方法时,第二个參数的名称写出来了,这是由于在Swift中,默认情况下。方法的第一个參数是内部參数(方法名中以及能够明白表明第一个參数的意义),其它參数都是外部參数。调用时,须要写出參数名称(这样能明白的表示出參数的意义,利于代码阅读)。
假设不想使用外部參数,能够将外部參数用”_"取代
class Counter {
var count: Int = 0
func incrementBy(amount: Int, _ numberOfTimes: Int) {
count += amount * numberOfTimes
}
}
let a = Counter()
a.incrementBy(1,1)
2.在实例方法中改动值类型
构体和枚举是值类型。普通情况下。值类型的属性不能在他的实例方法中被改动。
假设你确实须要在某个详细的方法中改动结构体或者枚举的属性。你能够选择变异(mutating)这种方法
struct Student{
var score = 0
mutating func incrementScore(a:Int){
score += a
}
}
注意:
① 假设不加mutating 。编译器会报错
② 不能在结构体常量实例上调用编译方法,由于常量的属性不能被改变
2. 类方法(Type Methods)
类型方法和实例方法一样用点语法调用。可是。你是在类型上调用这种方法,而不是在实例上调用。以下是怎样在SomeClass类上调用类型方法的样例:
和定义类属性一样,结构体中用statickeyword。类中用classkeyword
struct Student{
var score = 0
static func print(){
println("student")
}
}
class School{
var name = "NB小学"
class func print(){
println("school")
}
}
Student.print() //输出:student
School.print() //输出:school
Swift学习笔记十一:方法的更多相关文章
- Swift学习笔记(14)--方法
1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方 ...
- Swift学习笔记十一
类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同 ...
- swift学习笔记之--方法
一.说明 跟oc一样,面向对象,swift重点额方法可以分为2大类: (1)实例方法 oc中为减号方法(对象方法) (2)类型方法 oc中的加号方法(类方法) 二.实例方法 只能是对象调用的方法 代码 ...
- swift学习笔记之-方法部分
//方法部分 import UIKit //方法(Methods) /*方法是与某些特定类型相关联的函数,类.结构体.枚举都可以定义实例方法 实例方法(Instance Methods): 1.属于某 ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
随机推荐
- Win7提示1970-01-01 000000 is not a valid data怎么办.
1 单击屏幕右下角的时间按钮 2 选个更改日期和时间,更改日历设置 3 把短日期改成"yyyy-m-d" 4 确定即可.发现日期的表示形式变了.
- iOS技巧
在不使用加急的情况下,可以利用appstore“可以随时修改上架时间和发布国家.价格而无需再次审核”的规则,先提交小国市场快速过审,准备上架销售时再改回中国——如同样是中文版本,你可以先把游戏上到新加 ...
- 【BIEE】BIEE 11g BI Publisher报表开发实例
环境准备 JDK下载地址:直接去百度软件中心下载即可 BIPublisher下载地址:http://pan.baidu.com/s/1bpk03Jh 本例子中以win7 32位操作系统为例 1.安装已 ...
- SearchView的全面解析
代码地址如下:http://www.demodashi.com/demo/12535.html 前言 今天来讲讲searchView的使用,这里讲的searchView是引用android.suppo ...
- java中替换双引号 Java问题通用解决代码 Java问题通用解决代码
http://blog.csdn.net/newhappy2008/article/details/4785263 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 配置YUM源更新源
在虚拟机上更新yum,总是告诉我找不懂镜像服务器地址,配置失败,连 #yum install yum 它自己都无法更新. 于是决定先配置一下yum的更新源. 首先找到yum的主要配置文件, 一般在/e ...
- android studio改动module名称
新建一个android studio项目,默认Module名称是app 右键app选择Rename,或者Shift + F6也能够.重命名module名称 重命名为abc之后中,如图上面箭头所指的ap ...
- HTML5 2D平台游戏开发#7Camera
在庞大的游戏世界中,玩家不能一览地图全貌,而是只能看到其中一部分,并一步步探索,这时就要用到一种技术来显示局部的地图,游戏术语称为摄像机(Camera).下面两张图中的白色矩形框表示了Camera的作 ...
- foxmail 客户端 LOGIN Login error password error
显示这个错误是我在更换电脑时,将E:\Foxmail 7.2\Storage\15167136106@163.com 账户 移动到新的电脑上,并在新电脑上创建用户,总是报:账户或密码错误 我输入的密码 ...
- PHPMailer 使用 中文乱码
WordPress在用. You'll find plenty more to play with in the examples folder. 中文乱码问题: $mail->CharSet ...