回答編集履歴

3

曖昧さの解消

2020/01/06 06:55

投稿

AOKINAO
AOKINAO

スコア268

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自身を書き換えることができます。

2

用語の統一

2020/01/06 06:55

投稿

AOKINAO
AOKINAO

スコア268

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

曖昧さの解消

2020/01/06 06:52

投稿

AOKINAO
AOKINAO

スコア268

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自身を書き換えることができます。