import UIKit
struct FixedLengthRange{
var firstValue:Int;
let length:Int;
}
var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)
rangeOfThreeItems.firstValue = 6;
let rangeOfFourItems = FixedLengthRange(firstValue: 0, length: 4);
//需內外都是var才可變更值
//rangeOfFourItems.firstValue = 6;
//lazy store property
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 more data");
print(manager.importer.filename);
//computed property
struct Student{
let name:String;
var math:Int;
var chinese:Int;
var english:Int;
//computed property語法,一定要給資料類型,每呼叫一次sum,就get math + chinese + english
var sum:Int{
get{
return math + chinese + english
}
}
//computed property語法,一定要給資料類型,每呼叫一次average就get Double(sum) / 3.0
var average:Double{
get{
return Double(sum) / 3.0
}
}
}
var stu1 = Student(name: "Robert", math: 78, chinese: 67, english: 90);
print("stu1 的 sum 是:\(stu1.sum)");
print("stu1 的 average 是:\(stu1.average)");
//computed property,set
struct Point{
var _x = 0;
var _y = 0;
var x:Int{
get{
print("取出x");
return _x;
}
set(newV){
print("存入值:\(newV)");
_x = newV;
}
}
var y:Int{
get{
print("取出y");
return _y;
}
set(newV){
print("存入值:\(newV)");
_y = newV;
}
}
}
var point1 = Point(_x: 3, _y: 5);
print("\(point1.x)");
point1.x = 10;
print("\(point1.x)");