回答編集履歴
3
曖昧さの解消
test
CHANGED
@@ -8,4 +8,4 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
CBATTRequestはクラスなので参照の値が渡されます。そのため、requestを書き換えても呼び出し元のrequestは書き換わりません(ただし、現在のSwiftは仮引数をlet扱いするのでそもそも書き換えができません)が、値が指し示す先
|
11
|
+
CBATTRequestはクラスなので参照の値が渡されます。そのため、requestを書き換えても呼び出し元のrequestは書き換わりません(ただし、現在のSwiftは仮引数をlet扱いするのでそもそも書き換えができません)が、値(=参照)が指し示す先であるrequestの中身は書き換えることができます。その一方で、inoutを付加すると参照渡しになるので、呼び出し元のrequst自身を書き換えることができます。
|
2
用語の統一
test
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
|
5
5
|
Swiftに限らず、多くの言語では値渡しで行われます。ただ、値渡しで渡される内容が異なります。
|
6
6
|
|
7
|
-
Swiftの場合、Intなどのプリミティブやstructなどはオブジェクト全体が値渡しされます。一方で、classは
|
7
|
+
Swiftの場合、Intなどのプリミティブやstructなどはオブジェクト全体が値渡しされます。一方で、classはオブジェクトの参照の値が渡されます。
|
8
8
|
|
9
|
-
|
9
|
+
|
10
10
|
|
11
11
|
CBATTRequestはクラスなので参照の値が渡されます。そのため、requestを書き換えても呼び出し元のrequestは書き換わりません(ただし、現在のSwiftは仮引数をlet扱いするのでそもそも書き換えができません)が、値が指し示す先は参照なのでrequestの中身は書き換えることができます。その一方で、inoutを付加すると参照渡しになるので、呼び出し元のrequst自身を書き換えることができます。
|
1
曖昧さの解消
test
CHANGED
@@ -8,4 +8,4 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
CBATTRequestはクラスなので参照の値が渡されます。そのため、requestを書き換えても呼び出し元のrequestは書き換わりません(ただし、現在のSwiftは仮引数をlet扱いするのでそもそも書き換えができません)が、値が指し示す先は参照なのでrequestの中身は書き換えることができます。その一方で、inoutを付加すると参照渡しになるので、呼び出し元のrequstを書き換えることができます。
|
11
|
+
CBATTRequestはクラスなので参照の値が渡されます。そのため、requestを書き換えても呼び出し元のrequestは書き換わりません(ただし、現在のSwiftは仮引数をlet扱いするのでそもそも書き換えができません)が、値が指し示す先は参照なのでrequestの中身は書き換えることができます。その一方で、inoutを付加すると参照渡しになるので、呼び出し元のrequst自身を書き換えることができます。
|