teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コードの修正

2021/08/12 02:43

投稿

Yuhara327
Yuhara327

スコア9

title CHANGED
File without changes
body CHANGED
@@ -34,21 +34,16 @@
34
34
  print("HP:(monsterNumber.hp!)")
35
35
  print("DF:(monsterNumber.df!)")
36
36
  }
37
- Evolution(name: Monster1)
37
+ Evolution(monsterNumber: Monster1)
38
38
 
39
39
  ```
40
40
  ```Error
41
41
  Playground execution failed:
42
42
 
43
- error: TestField.playground:30:10: error: incorrect argument label in call (have 'name:', expected 'monsterNumber:')
43
+ error: TestField.playground:30:26: error: cannot convert value of type 'Monster' to expected argument type 'String'
44
- Evolution(name: Monster1)
44
+ Evolution(monsterNumber: Monster1)
45
- ^~~~~
45
+ ^
46
- monsterNumber
47
46
 
48
- error: TestField.playground:30:17: error: cannot convert value of type 'Monster' to expected argument type 'String'
49
- Evolution(name: Monster1)
50
- ^
51
-
52
47
  error: TestField.playground:24:19: error: value of type 'String' has no member 'hp'
53
48
  monsterNumber.hp += 100
54
49
  ~~~~~~~~~~~~~ ^~
@@ -67,5 +62,4 @@
67
62
  error: TestField.playground:28:31: error: value of type 'String' has no member 'df'
68
63
  print("DF:(monsterNumber.df!)")
69
64
  ~~~~~~~~~~~~~ ^~
70
-
71
65
  ```

2

質問文の誤字修正

2021/08/12 02:43

投稿

Yuhara327
Yuhara327

スコア9

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  #####作りたい物
3
3
  任意のインスタンスのhpとdfに数を足して表示したい
4
4
  ###### 書いてみたこと
5
- インスタンス名を受け取り、インスタンス名.hpとdfに+100,インスタンス名.dfに+50して表示する関数という形で書いてみました。よろしくお願いします。
5
+ インスタンス名を受け取り、インスタンス名.hpに+100,インスタンス名.dfに+50して表示する関数という形で書いてみました。よろしくお願いします。
6
6
  下がエラーメッセージです。
7
7
  ```swift
8
8
  class Monster {

1

コード、質問文の修正

2021/08/12 01:33

投稿

Yuhara327
Yuhara327

スコア9

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,9 @@
1
- クラスとインスタンスについて学習したので、「名前」「体力」「防御力」の3変数を持ち、値を表示するというものを作りました。
1
+ クラスとインスタンスについて学習したので、「名前(name)」「体力(hp)」「防御力(df)」の3変数を持ち、値を表示するというクラスを作りました。
2
+ #####作りたい物
3
+ 任意のインスタンスのhpとdfに数を足して表示したい
4
+ ###### 書いてみたこと
5
+ インスタンス名を受け取り、インスタンス名.hpとdfに+100,インスタンス名.dfに+50して表示する関数という形で書いてみました。よろしくお願いします。
6
+ 下がエラーメッセージです。
2
7
  ```swift
3
8
  class Monster {
4
9
  var name: String!
@@ -16,6 +21,51 @@
16
21
  Monster1.df = 100
17
22
  Monster1.display()
18
23
 
24
+ let Monster2 = Monster()
25
+ Monster2.name = "killerMachine"
26
+ Monster2.hp = 200
27
+ Monster2.df = 100
28
+ Monster2.display()
29
+
30
+ func Evolution (monsterNumber: String){
31
+ monsterNumber.hp += 100
32
+ monsterNumber.df += 50
33
+ print("(monsterNumber.name!)が進化した")
34
+ print("HP:(monsterNumber.hp!)")
35
+ print("DF:(monsterNumber.df!)")
36
+ }
37
+ Evolution(name: Monster1)
38
+
19
39
  ```
20
- 次に、「進化」のような関数で、体力と防御力の値をいくらか増やし、また値を表示するというコードを書こうと思ったのですが、最初のクラス内にある変数を外から参照できないので困っています。どうすれば良いでしょうか。
40
+ ```Error
21
- Playgroundです。
41
+ Playground execution failed:
42
+
43
+ error: TestField.playground:30:10: error: incorrect argument label in call (have 'name:', expected 'monsterNumber:')
44
+ Evolution(name: Monster1)
45
+ ^~~~~
46
+ monsterNumber
47
+
48
+ error: TestField.playground:30:17: error: cannot convert value of type 'Monster' to expected argument type 'String'
49
+ Evolution(name: Monster1)
50
+ ^
51
+
52
+ error: TestField.playground:24:19: error: value of type 'String' has no member 'hp'
53
+ monsterNumber.hp += 100
54
+ ~~~~~~~~~~~~~ ^~
55
+
56
+ error: TestField.playground:25:19: error: value of type 'String' has no member 'df'
57
+ monsterNumber.df += 50
58
+ ~~~~~~~~~~~~~ ^~
59
+
60
+ error: TestField.playground:26:28: error: value of type 'String' has no member 'name'
61
+ print("(monsterNumber.name!)が進化した")
62
+
63
+ error: TestField.playground:27:31: error: value of type 'String' has no member 'hp'
64
+ print("HP:(monsterNumber.hp!)")
65
+ ~~~~~~~~~~~~~ ^~
66
+
67
+ error: TestField.playground:28:31: error: value of type 'String' has no member 'df'
68
+ print("DF:(monsterNumber.df!)")
69
+ ~~~~~~~~~~~~~ ^~
70
+
71
+ ```