Last active
December 28, 2015 06:16
-
-
Save adin283/fc509f4d42a590723439 to your computer and use it in GitHub Desktop.
Swift Struct And Class Playground
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//: Playground - noun: a place where people can play | |
import UIKit | |
//1.结构体类型的定义 | |
struct MyPoint { | |
var x: Float = 0 | |
var y: Float = 0 | |
mutating func setMyPoint(tempX: Float, tempY: Float) { | |
x = tempX | |
y = tempY | |
} | |
func display() { | |
print("(\(x), \(y))") | |
} | |
} | |
//2.结构体类型变量的声明以及结构体函数的使用 | |
var myPoint = MyPoint() | |
myPoint.display() | |
myPoint.setMyPoint(2.3, tempY: 123.124) | |
//1. 类的创建与构造器 | |
class YourPoint { | |
var x: Float = 0 | |
var y: Float = 0 | |
init(x:Float = 1, y:Float = 2){ | |
self.x = x | |
self.y = y | |
} | |
func setYourPoint(tempX: Float, tempY: Float) { | |
x = tempX | |
y = tempY | |
} | |
func display() { | |
print("(\(x), \(y))") | |
} | |
} | |
var yourPoint = YourPoint() | |
yourPoint.x | |
yourPoint.y | |
var hisPoint = YourPoint(x:123.213, y:2314) | |
//2.对象的赋值与比较 | |
var a = YourPoint(x: 10, y: 20) | |
var b = a | |
b.x | |
b.y | |
a.x = 100 | |
a.y = 200 | |
b.x | |
b.y | |
//3.属性的懒加载(lazy) | |
class MyCycle { | |
var r: Float = 0 | |
lazy var cyclePoint = YourPoint(x: 5, y: 6) | |
} | |
var myCycle = MyCycle() | |
myCycle.cyclePoint | |
//4. 计算属性(Count Property) | |
class Money { | |
var CNY: Double = 0 | |
var USD: Double { | |
get { | |
return self.CNY / 6.4581 | |
} | |
set(usd) { | |
self.CNY = usd * 6.4581 | |
} | |
} | |
} | |
var money = Money() | |
money.USD = 10//CNY马上被计算出来 | |
money.CNY | |
money.CNY = 64.581//USD需要调用get方法才能获取 | |
money.USD | |
//6. 实例方法与类方法 | |
class MyTestClass { | |
func objectMethod() { | |
print("我是实例方法,需要实例化后才能调用") | |
} | |
class func classMethod() { | |
print("我是类方法,无需实例化就可以调用") | |
} | |
} | |
MyTestClass.classMethod() | |
var myTestClass = MyTestClass() | |
myTestClass.objectMethod() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment