Swift学习(二)
一、方法
在OC中,函数是C语言的形式,跟方法不一样
函数:int sum (int num1, int num2) {
return num1 + num2;
}
方法:- (int)sum:(int)num1 num2:(int)num2 {
return nim1 + num2;
}
Swift中函数和方法相同。
方法的第一个参数仅仅是局部参数名,只在函数内部使用;除第一个之外的其他参数名既是局部参数名,又是外部参数名。
func sum (num1: Int, num2: Int) -> Int {
return num1 + num2
}
Swift中方法的调用:
class Calculator {
func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
}
var calculator = Calculator()
calculator.sum(10, num2: 20) // 会默认生成一个num2 外部参数名
class Calculator {
func sum(num1: Int, _ num2: Int) -> Int { // 加个下划线,去掉默认外部参数名,num1和num2都仅仅是局部参数名
return num1 + num2
}
}
var calculator = Calculator()
calculator.sum(10, 20) // num2 前加下划线之后调用就不用写num2了
class Calculator {
func sum(num1: Int, cal_num2 num2: Int) -> Int { // num2的外部参数名变为cal_num2,如果前边再加一个下划线,同上
return num1 + num2
}
}
var calculator = Calculator()
calculator.sum(10, cal_num2: 20) // 会默认有个num2参数
注意:也可以给第一个参数增加外部参数名。如果num1前面加#: #num1 或者: cal_num1 num1,调用的时候第一个参数就需要写上参数名,num1 或者 cal_num1
类型方法:被关键字class修饰的,用类名来调。内部没有对象,不能存在属性,类方法不需要创建对象直接调用,省内存。
注意,类型方法的名称可以和实例方法的名称一样,一个用类名调用,一个用对象调用,没有冲突。
class Calculator {
var price: Double = 10.0
class func sum(num1: Int, num2: Int) -> Int {
price = 20.0 // 这句报错,price是存储属性,是对象才有的,类方法中没有对象
return num1 + num2
}
}
var caculator = Calculator.sum(10, num2: 20)
什么是self:
每一个方法内部,都有一个隐含的属性self,作用跟OC中的用法一致。
self代表什么:
谁调用这个方法,self就代表谁,在实例方法中:self代表调用方法的某个对象;在类方法中,self代表调用方法的某个类
class Person {
class func run() {
println("class func run")
}
func run() {
println("func run")
}
class func test() {
self.run // 也可以省略 run
}
func test() {
self.run()
}
}
var person = Person()
person.test() // 首先来到func test(), self代表调用者 person对象,person对象调用 func run()方法,打印 func run
Person.test() // 首先来到claa func test(), self代表调用者 Person类,Person类调用 class func run()方法,打印 class func run
Swift学习(二)的更多相关文章
- Swift学习二
// 定义枚举方式一 enum Season { // 每个case定义一个实例 case Spring case Summer case Fall case Winter } // 定义枚举方式二 ...
- swift学习二:基本的语法
声明本文转载自:http://www.cocoachina.com/applenews/devnews/2014/0603/8653.html Swift是什么? Swift是苹果于WWDC 2014 ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- iOS ---Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- 今天开始Swift学习
今天开始Swift学习 在此记录笔记 以备之后查阅! allenhuang
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- 12套swift学习资源分享
虽然objective-c编程语言在过去很长一段时间都是iOS应用开发的基础语言,且很多iOS开发者对其也深爱有佳,但是随着swift编程语言的问世,迅速发展为开发者追捧的语言.且今年伴随着swift ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
随机推荐
- sqlite3移植到arm linux
1,环境: 软件:linux:2.6.38 硬件:6410 交叉编译工具:arm-linux-gcc 也适用于其他linux平台. 2,步骤: 1>下载sqlite3源码包: http://ww ...
- [Perl] Getopt 函数来接收用户参数的使用
我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...
- SIP 状态码
SIP应答消息状态码 与功能 类型 状态码 状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 ...
- Redis配置文件解读
转载自:http://www.cnblogs.com/daizhj/articles/1956681.html 对部分配置选项做了一些说明 把配置项目从上到下看了一遍,有了个大致的了解,暂时还用不到一 ...
- 安装配置Oracle数据库时的一些处理思路
配置Oralce客户端或者服务器端出现问题时,可考虑如下步骤: 1 检查如下文件:client端:D:\app\Administrator\product\11.2.0\client_3\networ ...
- SecureCRT自动登录
- DBA_Oracle Audit基本概念(概念)
2014-08-15 Created By BaoXinjian
- GL_GL系列 - 日记账处理管理分析(案例)
2014-07-07 Created By BaoXinjian
- BIP_BI Publisher Administrator设定Configuration/Font/Currencies(案例)
2014-08-08 Created By BaoXinjian
- NeHe OpenGL教程 第二十九课:Blt函数
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...