Method
構造体にメソッドを追加することができます。下記の例ではdescriptionというメソッドを追加しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
struct Time { var hour:Int var minute:Int var second:Int init(){ self.hour = 0 self.minute = 0 self.second = 0 } init(hour:Int,minute:Int){ self.hour = hour self.minute = minute second = 0 } func description() -> String{ return "\(self.hour):\(self.minute):\(self.second)" } } |
プロパティの値を変える場合、関数の前にmutating
をつける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
struct Time { var hour:Int var minute:Int var second:Int init(){ self.hour = 0 self.minute = 0 self.second = 0 } init(hour:Int,minute:Int){ self.hour = hour self.minute = minute second = 0 } mutating func addTime(hour:Int,minute:Int){ self.hour += hour self.minute += minute } func description() -> String{ return "\(self.hour):\(self.minute):\(self.second)" } } |
|
var tm:Time = Time(hour: 10, minute: 5) let tmdesc:String = tm.description() //"10:5:0" tm.addTime(1, minute: 30) let tmdesc2:String = tm.description() //"11:35:0" |
構造体のタイプメソッドにする場合、関数の頭にstatic
をつける。
関連