質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

1275閲覧

プロパティとinitメソッドを持つクラスの意味がわからない

14ic158p

総合スコア29

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/03/24 02:16

編集2016/03/24 02:33

以下のようなプロパティとinitメソッドを持つHumanクラスを定義して下さい。

nameプロパティ
String型
ageプロパティ
Int型
stateプロパティ
Stringのオプショナル型
initメソッド
nameとageを引数に取り、それにより引数を初期化する
「(インスタンスのname)がやってきました」と出力する

class Human {
var name: String
var age: Int
var state: String?

init(name: String, age: Int) {
self.name = name
self.age = age
print("(self.name)がやってきました")
}
}

という問題が出されたのですが、「インスタンスのname」がself.nameで表されてるのはなぜなのか。
self.name = name ってどういう意味なのか。
self.name = nameで、右辺のnameと左辺のnameは何が違うのかということを教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

右辺のnameは、init(name: String, age: Int) {のnameです。
左辺のnameは、var name: String のnameです。
同じ名前なだけで別物です。

両方で違う名前を付けると入門したての人にはわかりやすいのかも知れませんが、特に名前を変える意味もないので、同じ名前を使うことが多いのでは。

投稿2016/03/24 02:21

otn

総合スコア84491

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

14ic158p

2016/03/24 02:32

ということはself.name = name はinit(name: String, age: Int) { のnameに var name: String のnameを代入しているということになるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問