質問編集履歴

3

ベストアンサーについて追記

2017/08/02 08:44

投稿

todayske
todayske

スコア36

test CHANGED
File without changes
test CHANGED
@@ -90,6 +90,8 @@
90
90
 
91
91
  皆様、ご回答ありがとうございます! おかげさまで大分理解が進んだ気がします。
92
92
 
93
+ (どのご回答もとても的確で理解を深めていただいて、ベストアンサーを選ぶのが難しかったのですが、私のレベルで一番理解しやすかったという観点で選出させていただきました)
94
+
93
95
  こういう認識で合っていますでしょうか?
94
96
 
95
97
 

2

いただいたご回答を元に進んだ理解について追記

2017/08/02 08:44

投稿

todayske
todayske

スコア36

test CHANGED
File without changes
test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
 
40
40
 
41
- print(StaticGuy.introduce()) // -> 私はstaticな男
41
+ StaticGuy.introduce() // -> 私はstaticな男
42
-
42
+
43
- print(NormalGuy().introduce()) // -> 私は普通の男
43
+ NormalGuy().introduce() // -> 私は普通の男
44
44
 
45
45
  ```
46
46
 
@@ -79,3 +79,127 @@
79
79
 
80
80
 
81
81
  よろしくお願いいたします。
82
+
83
+
84
+
85
+
86
+
87
+ ---
88
+
89
+ 追記
90
+
91
+ 皆様、ご回答ありがとうございます! おかげさまで大分理解が進んだ気がします。
92
+
93
+ こういう認識で合っていますでしょうか?
94
+
95
+
96
+
97
+ ```Swift
98
+
99
+ // MARK: 1. 普通の場合
100
+
101
+ class NormalGuy {
102
+
103
+ var name = "普通の男"
104
+
105
+ func introduce() {
106
+
107
+ print("私は\(name)なので、たくさん生成すると、メモリがとんでもないことになります。")// -> 私は普通の男
108
+
109
+ }
110
+
111
+ }
112
+
113
+
114
+
115
+ // これは無駄にメモリの負担が大きい。
116
+
117
+ for _ in 1...100 {
118
+
119
+ NormalGuy().introduce()
120
+
121
+ }
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+ // MARK: 2. static を使った場合
136
+
137
+ class StaticGuy {
138
+
139
+ static var name = "staticな男"
140
+
141
+ static func introduce() {
142
+
143
+ print("ふはははは! いくら私を生成しようとも、メモリの負担はあんまり大きくないぞ!! 何故なら私は\(name)だから!")// -> 私はstaticな男
144
+
145
+ }
146
+
147
+ }
148
+
149
+
150
+
151
+ // これは、MARK1 よりもメモリの負担が少ない。
152
+
153
+ for _ in 1...100 {
154
+
155
+ StaticGuy.introduce()
156
+
157
+ }
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+ // MARK: 3. static を使えない場合
172
+
173
+ // ロックな人は、みんなと同じであることが耐えられないので、名前を個別に設定したい。
174
+
175
+ // この場合は、やりたいこと的に static にできない。
176
+
177
+ class RockGuy {
178
+
179
+ var name: String
180
+
181
+ init(name: String) {
182
+
183
+ self.name = name
184
+
185
+ }
186
+
187
+
188
+
189
+ func introduce() {
190
+
191
+ print("俺はロックな男。その名も、\(name)!")// -> 俺はロックな男。その名も、(それぞれの名前)!
192
+
193
+ }
194
+
195
+ }
196
+
197
+
198
+
199
+ for name in ["カールスバーグ宮崎", "ヤスオ", "ジョセフ伊藤", "エンジェル桜木"] {
200
+
201
+ RockGuy(name: name).introduce()
202
+
203
+ }
204
+
205
+ ```

1

2017/08/02 08:17

投稿

todayske
todayske

スコア36

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  あまり他の言語に精通していないので、できれば Swift の例だと助かりますが、もし他の言語でも考え方のご説明をいただけますと嬉しいです。
76
76
 
77
- 上手に聞きたいことを伝えられなくて大変恐縮ですが、「おそらくこういうことが聞きたいのだろう」と思ってくださった方は、お知恵をお借りできますととても助かります。
77
+ 上手に聞きたいことを伝えられなくて大変恐縮ですが、「おそらくこういうことが聞きたいのだろう」と思ってくださった方は、お知恵をお貸しいただけますととても助かります。
78
78
 
79
79
 
80
80