方法是与某些特定类型相关联的功能/函数。在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学习笔记十一:方法的更多相关文章

  1. Swift学习笔记(14)--方法

    1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方 ...

  2. Swift学习笔记十一

    类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同 ...

  3. swift学习笔记之--方法

    一.说明 跟oc一样,面向对象,swift重点额方法可以分为2大类: (1)实例方法 oc中为减号方法(对象方法) (2)类型方法 oc中的加号方法(类方法) 二.实例方法 只能是对象调用的方法 代码 ...

  4. swift学习笔记之-方法部分

    //方法部分 import UIKit //方法(Methods) /*方法是与某些特定类型相关联的函数,类.结构体.枚举都可以定义实例方法 实例方法(Instance Methods): 1.属于某 ...

  5. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  6. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

  7. python3.4学习笔记(十一) 列表、数组实例

    python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...

  8. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  9. Java学习笔记之---方法和数组

    Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...

随机推荐

  1. 使用HttpClient测试SpringMVC的接口

    转载:http://blog.csdn.net/tmaskboy/article/details/52355591 最近在写SSM创建的Web项目,写到一个对外接口时需要做测试,接受json格式的数据 ...

  2. iOS学习(项目中遇到的错误1)

    1.[AppModel copyWithZone:]: unrecognized selector sent to instance 0x7ffda9f4cf70 *** Terminating ap ...

  3. P-Called-Party-ID 头域的应用说明

    P-Called-Party-ID 头域的适用场景 P-Called-Party-ID 适用于 UAS 须要知道在代理将目标改写为Contact 地址之前请求中Request-URI的目的AOR的情况 ...

  4. LeetCode题目:Permutations

    题目:Given a collection of distinct numbers, return all possible permutations. 大意:全排列给定数组,其中给定数组中没有相同的 ...

  5. Linux ssh修改文件

    cd 你要修改的文件所在目录vi 你需要修改的文件名 这之后你就会进入vi编辑界面按"i"进入编辑模式正常修改就行按"ESC"进入命令模式,输入 ": ...

  6. Centos7 搭建最新 Nexus3 Maven 私服

    Maven 介绍 Apache Maven 是一个创新的软件项目管理和综合工具.Maven 提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文 ...

  7. 编写批处理命令来执行JAVA文件

    http://baobeituping.iteye.com/blog/802543 1. JAVA工程路径结构 Project    ------lib    ------src    ------W ...

  8. Android开发_Animation

    新建项目: http://www.cnblogs.com/hongten/gallery/image/112163.html 项目结构: http://www.cnblogs.com/hongten/ ...

  9. sqlserver修改表主键自增

    alter table tname add id int  identity(1,1)

  10. mysql中百万级别分页查询性能优化

    前提条件: 1.表的唯一索引 2.百万级数据 SQL语句: select c.* FROM ( SELECT a.logid FROM tableA a where 1 = 1 <#if pho ...