回答編集履歴

1

用語の誤用を訂正。(コンストラクタをイニシャライザに修正)

2020/09/06 00:56

投稿

eytyet
eytyet

スコア803

test CHANGED
@@ -1,4 +1,4 @@
1
- ## `()`はコンストクタの呼び出し、`[]`はサブスクリプトの呼び出しです
1
+ ## `()`はイニシャイザの呼び出し、`[]`はサブスクリプトの呼び出しです
2
2
 
3
3
 
4
4
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- この`Impression`構造体を、`Impression(3)`や、`Impression(int: 3)`として作成することはできません。引数が合致するコンストラクタがないからです。
19
+ この`Impression`構造体を、`Impression(3)`や、`Impression(int: 3)`として作成することはできません。引数が合致するイニシャライザ(他の言語ではコンストラクタとも呼びます)がないからです。
20
20
 
21
21
 
22
22
 
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- `()`はコンストクタの呼び出しで、`[]`はサブスクリプトの呼び出しです。
27
+ `()`はイニシャイザの呼び出しで、`[]`はサブスクリプトの呼び出しです。
28
28
 
29
29
  サブスクリプトがそういうものである、というのはozwkさんの回答の通りです。
30
30
 
@@ -36,11 +36,11 @@
36
36
 
37
37
 
38
38
 
39
- ## コンストクタについて
39
+ ## イニシャイザについて
40
40
 
41
41
 
42
42
 
43
- `Impression`構造体を`Impression(int: 3)`として作成できるようにするには、コンストクタを用意してあげる必要があります。
43
+ `Impression`構造体を`Impression(int: 3)`として作成できるようにするには、イニシャイザを用意してあげる必要があります。
44
44
 
45
45
 
46
46
 
@@ -78,7 +78,7 @@
78
78
 
79
79
 
80
80
 
81
- プロパティの定義だけでよいのは、Swiftが自動的にメンバワイズコンストクタと呼ばれるコンストクタを作ってくれるからです。つまり、以下のように書いたのと同じと解釈されているからで、コンストないのではありません。
81
+ プロパティの定義だけでよいのは、Swiftが自動的にメンバワイズイニシャイザと呼ばれるイニシャイザを作ってくれるからです。つまり、以下のように書いたのと同じと解釈されているからで、イニシャイザがないのではありません。
82
82
 
83
83
 
84
84
 
@@ -100,13 +100,13 @@
100
100
 
101
101
 
102
102
 
103
- (細かい話ですが、メンバワイズコンストクタでは、引数名とプロパティ名が同じになるので、プロパティ名を`int`にしてあげないと、引数名を`int`にはできません。)
103
+ (細かい話ですが、メンバワイズイニシャイザでは、引数名とプロパティ名が同じになるので、プロパティ名を`int`にしてあげないと、引数名を`int`にはできません。)
104
104
 
105
105
 
106
106
 
107
107
  この状態でも、`Impression(3)`とするとエラーになります。
108
108
 
109
- Impression(3)として使うには、別のコンストクタが要ります。
109
+ Impression(3)として使うには、別のイニシャイザが要ります。
110
110
 
111
111
 
112
112
 
@@ -122,11 +122,11 @@
122
122
 
123
123
 
124
124
 
125
- 引数名のないコンストクタを定義してあげないと、引数名なしでインスタンス化させることはできません。
125
+ 引数名のないイニシャイザを定義してあげないと、引数名なしでインスタンス化させることはできません。
126
126
 
127
127
 
128
128
 
129
- もし、`Impression(3)`でも`Impression(int: 3)`でも良いようにしたかったら、両方のコンストクタを定義しなくてはなりません。
129
+ もし、`Impression(3)`でも`Impression(int: 3)`でも良いようにしたかったら、両方のイニシャイザを定義しなくてはなりません。
130
130
 
131
131
 
132
132
 
@@ -154,4 +154,8 @@
154
154
 
155
155
 
156
156
 
157
- なお、メンバワイズコンストクタは、コンストクタ定義がないときだけ作成されるのでご注意ください。
157
+ なお、メンバワイズイニシャイザは、他にイニシャイザ定義がないときだけ作成されるのでご注意ください。
158
+
159
+
160
+
161
+ ※当初イニシャライザをコンストラクタと呼んでいましたがSwiftの言語仕様ではイニシャライザが正しいので、修正しました。