こんにちわ、Matsuki Blog運営者のマツキです。
SwiftのYouTube動画学習、たけむらしんいちさんのチャンネルで少しコードの解釈が要るかなと思ったのでメモ書きです。
解釈した部分は「暗黙の引数」の箇所ですね。
コメントの形で補足しています。
//🌟IDというデータを設定
class ID{
//プロパティ設定
var id:Int = 0
//メソッドの設定
func getID() -> Int{
id += 1
return id
}
}
//🌟Userというデータを設定
class User{
//プロパティの設定
let id:Int
var name:String{
willSet{print("info:氏名が変更されようとしています。\(name)")}
didSet{
print("info:氏名が変更されました。\(name)")
//変更したらカウントアップ
count += 1
}
}
//変更回数をカウントしたいための変数を準備
var count:Int
//イニシャライザでプロパティの初期値を設定
//引数を二つ準備した「id」「name」
//引数idの「型」を「クラスID」を入れるとした
//引数nameに対しては文字列型を入れるとした
init(id:ID,name:String){
//️自分自身のプロパティid に クラスID型として代入される引数idを左辺に使用
//┗その上で、IDのクラスメソッド.getIDを左辺として設置
self.id = id.getID()
//自分自身のプロパティ に 引数name を初期値として代入する
self.name = name
//自分自身のプロパティ に 単純に 0 を初期値として代入する
self.count = 0
}
//メソッドの設定
func info(){
var str = "ID:\(self.id)\n"
str += "氏名:\(self.name)\n"
str += "変更回数:\(self.count)"
print(str)
}
}
//定数id、クラスIDのインスタンスを準備。定数idにそのインスタンスを代入
let id = ID()
//変数userと、クラスUserのインスタンスを準備。変数userにクラスUserインスタンス代入。
//クラスUserインスタンスのプロパティの引数として上で用意した定数id,即ちIDのインスタンスを代入
//イニシャライザ内の引数idの方をクラスIDと設定しており、これで矛盾しない。
var user = User(id:id,name:"Yamada")
//クラスメソッド使用
user.info()
user.name = "Suzuki"