Swiftでいこう -- プロパティってなに?
struct Boxがあります。
struct Box{
let width:Int
let height:Int
}
この場合
let width:Int
let height:Int
がプロパティです。
普通に使う場合は格納型プロパティ(Stored property)と呼ばれ、値を保持するために使われます。
structの場合は初期化の処理は必須ではありませんが、classでは必須です。
class についてはこんなかんじで,
class Human {
var name:String
let age:Int
init(name: String, age: Int){
self.name = nema
self.age = age
}
}
class Human {
var name:String = "taro"
let age:Int = 20
}
初期化が必須です。
ちょっと違う便利な使い方ができるのが、計算型プロパティ(Computed property)というものです。
コードを書いてみましょう。
struct Area {
var width: Int
var height: Int
init(width: Int, height: Int) {
self.width = width
self.height = height
}
var area: Int {
get{
return width * height
}
}
}
使ってみましょう。縦、横が20の面積は?
var box = Area(width: 20, height: 20)
print(box.area) // 400と表示
コンソールには400と表示されました。計算をして表示しましたね。そういう機能を持たせることができます。
set{}を付け加えて値を変更することもできます。以下をくっつけます。
set{
width = newValue * 2
height = newValue * 2
}
すると
struct Area {
var width: Int
var height: Int
init(width: Int, height: Int) {
self.width = width
self.height = height
}
var area: Int {
get{
return width * height
}
set{
width = newValue * 2
height = newValue * 2
}
}
}
なります。
では使ってみましょう。
var box = Area(width: 20, height: 20)
box.area = 5
print(box.area) // 100と表示
box.area = 5
boxの中の変数areaに5を"set"します。5は"newValue"の値となり、"5 * 2"と計算されます。ここでは 5 * 2 = 10なので、"width","height"は10となり、
get{
return width * height
}
で処理されます。 結果"10 * 10 = 100" となります。
print関数で処理すると"100"と表示されます。getで計算、setがある場合は値が変更して計算できるということですね。
この記事が気に入ったらサポートをしてみませんか?