Skip to content

Instantly share code, notes, and snippets.

@adin283
Last active December 28, 2015 06:16
Show Gist options
  • Save adin283/fc509f4d42a590723439 to your computer and use it in GitHub Desktop.
Save adin283/fc509f4d42a590723439 to your computer and use it in GitHub Desktop.
Swift Struct And Class Playground
//: 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