swift_021(Swift 的方法)
来源:互联网 发布:ai cs6 for mac中文版 编辑:程序博客网 时间:2024/05/21 07:51
//***********swift学习之21--方法--***************************
/*
实例方法
在Swift语言中,实例方法是属于某个特定类、结构体或者枚举类型实例的方法。
a.实例方法要写在它所属的类型的前后大括号({})之间。
b.实例方法能够隐式访问它所属类型的所有的其他实例方法和属性。
c.实例方法只能被它所属的类的某个特定实例调用。
d.实例方法不能脱离于现存的实例而被调用。
*/
class Counter {
var count =0
func increment() {
count +=1
}
func incrementBy(amount:Int) {
count += amount
}
func reset() {
count =0
}
}
// 初始计数值是0
let counter = Counter()
// 计数值现在是1
counter.increment()
// 计数值现在是6
counter.incrementBy(amount:5)
print(counter.count)
// 计数值现在是0
counter.reset()
print(counter.count)
class division {
var count:Int = 0
func incrementBy(no1:Int, no2: Int) {
count = no1 / no2
print(count)
}
}
let div = division()
div.incrementBy(no1:1800, no2: 3)
/*
类型方法
实例方法是被类型的某个实例调用的方法,你也可以定义类型本身调用的方法,这种方法就叫做类型方法。
声明结构体和枚举的类型方法,在方法的func关键字之前加上关键字static。类可能会用关键字class来允许子类重写父类的实现方法。
类型方法和实例方法一样用点号(.)语法调用。
*/
class Math
{
classfunc abs(number: Int) -> Int
{
if number <0
{
return (-number)
}
else
{
return number
}
}
}
struct absno
{
staticfunc abs(number: Int) -> Int
{
if number <0
{
return (-number)
}
else
{
return number
}
}
}
let no = Math.abs(number:-35)
let num = absno.abs(number:-5)
print(no)
print(num)
/*
在实例方法中修改值类型
Swift 语言中结构体和枚举是值类型。一般情况下,值类型的属性不能在它的实例方法中被修改。
但是,如果你确实需要在某个具体的方法中修改结构体或者枚举的属性,你可以选择变异(mutating)这个方法,然后方法就可以从方法内部改变它的属性;并且它做的任何改变在方法结束时还会保留在原始结构中。
方法还可以给它隐含的self属性赋值一个全新的实例,这个新实例在方法结束后将替换原来的实例。
*/
struct area {
var length =1
var breadth =1
func area() ->Int {
returnlength * breadth
}
mutatingfunc scaleBy(res: Int) {
length *= res
breadth *= res
print(length)
print(breadth)
}
}
var val = area(length:3, breadth: 5)
val.scaleBy(res:3)
val.scaleBy(res:30)
val.scaleBy(res:300)
/*
在可变方法中给 self赋值
可变方法能够赋给隐含属性 self一个全新的实例。
*/
struct area1 {
var length =1
var breadth =1
func area() ->Int {
returnlength * breadth
}
mutatingfunc scaleBy(res: Int) {
self.length *= res
self.breadth *= res
print(length)
print(breadth)
}
}
var val1 = area1(length:3, breadth: 5)
val.scaleBy(res:13)
- swift_021(Swift 的方法)
- [Swift]Swift的初始化方法
- Swift的初始化方法
- Swift方法的简写
- Swift方法(Methods)
- Swift 方法(Methods)
- Swift 方法的多面性
- Swift 字典的常用方法
- swift中单例的实现方法
- Swift中单例的实现方法
- Swift-代理方法的使用
- swift压缩图片的方法
- Swift-Selector方法的扩展
- 学习Swift笔记 (十二)Swift方法(Methods)的使用
- Swift中UIView类方法(animateWithDuration)的使用
- swift中获取(判断)设备版本的方法
- swift学习笔记(一)NSUserDefaults存储对象的方法
- Swift - 动画效果的实现方法总结(附样例)
- Android M 特性 Doze and App Standby模式详解
- 动态连接库和符号(symbol)
- 虚析构函数(删除基类对象时,先调用派生类的虚构函数,再调用基类虚析构函数)
- 比较两个UIImage是否相同
- 重装Nodejs后,webstorm代码报错问题
- swift_021(Swift 的方法)
- 子线程,队列,以及监控执行时间
- Mybatis和ibatis的区别
- Android 进程管理机制及优化
- jquery的gt跟lt选择器用法
- 僵化的体制和胸怀
- Linux进程空间分配
- iOS学习笔记-LocalAuthentication
- swift_022(Swift 的下标脚本)