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)方法的优点 使程序变得更简短而 ...
随机推荐
- SOYO的主板如何进入BIOS系统
1 开机按Del键进入BIOS系统 2 进入Advanced BIOS Features 3 选择 Hard Disk Boot Priority 按ENTER 4 选择要启动的设备,比如 ...
- OpenSSL Heartbleed "心脏滴血"漏洞简单攻击示例
转自:http://www.lijiejie.com/openssl-heartbleed-attack/ OpenSSL Heartbleed漏洞的公开和流行让许多人兴奋了一把,也让另一些人惊慌了一 ...
- 为php5.6.30安装redis扩展
1.下载phpredis3.1.2 https://github.com/phpredis/phpredis/releases/tag/3.1.2 2.解压后在phpredis3.1.2目录下执行 / ...
- 【转载】json对象的使用
使用JSON 进行数据传输 一.选择的意义 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.为了更好的使用ajax, 我们将学习一种有用的数据格式 JavaScript O ...
- Android 软键盘的监听(监听高度,是否显示)
Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时.非常多地方都须要针对软键盘来对UI进行一些优化. 下面是整理出来的一个不错的方法.大家能够使用. public clas ...
- TCO'10 Online Round 3 1000pt
题目大意: 密码串由小写字母.大写字母和数字组成,要求求出小写字母个数不少于L个.大写字母个数不少于U个.数字个数不少于D个的长度为N密码串的种数. 答案对 1000000009 取模 解题思路: 自 ...
- C#代码用法
1.new的用法using System;using System.Collections.Generic;using System.Text;namespace yanz{public class ...
- BNU 34990 Justice String (hash+二分求LCP)
思路:枚举第一个字符串的位置,然后枚举最长公共前缀的长度,时间即会下降-- #pragma comment(linker, "/STACK:1024000000,1024000000&quo ...
- 方法return外部链接
return new ModelAndView(new RedirectView(url));
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx 1.1. 预定义函数 魔术方法 魔术函数是什么1 1.2. & ...