Swift学習ノート属性
5540 ワード
struct FixedLengthRange {
var firstValue: Int
let length: Int
}
var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)
rangeOfThreeItems.firstValue = 6
class DataImporter {
var fileName = "data.txt"
}
class DataManager {
lazy var importer = DataImporter()
var data = [String]()
}
let manager = DataManager()
manager.data.append("Some Data")
manager.data.append("Some Data")
struct Point{
var x = 0.0, y = 0.0
}
struct Size {
var width = 0.0, height = 0.0
}
struct Rect {
var origin = Point()
var size = Size()
var center: Point{
get{
let centerX = origin.x + (size.width / 2)
let centerY = origin.y + (size.height / 2)
return Point(x: centerX, y: centerY)
}
set(newCenter)
{
origin.x = newCenter.x - (size.width / 2)
origin.y = newCenter.y - (size.height / 2)
}
}
}
var square = Rect(origin: Point(x: 0.0, y: 0.0), size: Size(width: 10.0, height: 10.0))
let initialSquareCenter = square.center
square.center = Point(x: 15.0, y: 15.0)
struct Cuboid {
var width = 0.0
var volume: Double {
return width
}
}
class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
println(newTotalSteps)
}
didSet{
if(totalSteps > oldValue )
{
println(totalSteps - oldValue)
}
}
}
}
let stepCounter = StepCounter()
stepCounter.totalSteps = 200
class SomeClass {
static var i = 100
class var computedTypeProperty: Int {
get{
return 100
}
}
}
以上が属性の基本的な使い方で、他の言語と似ていますが、静的属性については少し定義が異なり、クラスの静的属性を定義する際に
classキーワードを追加する必要があります
属性にはget,setメソッドがあります
また、didSetとwillSetを使用して、プロパティの値を監視することもできます.