質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

235閲覧

swiftの参照渡しが機能しない

kamingout

総合スコア44

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/12/25 13:19

Swiftにて、参照渡し関数を実装したのですが、おかしな挙動をします。

Swift

1// 関数 2func A(bytes:[UInt8], index:inout Int) 3{ 4... 5} 6 7 8//main側 9var index:Int = 1 10A(bytes, &index) 11

main側からindexを参照渡しでA関数の引数として与えたところ、
A関数内でindexの値がアドレス??のような値になってしまいます。
逆に&indexの値が1となっております。

C++による実装のイメージではA関数内では、indexは1なると思うのですが。。。

初歩的な躓きで申し訳ありませんが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasakiHori

2018/12/25 15:34

そのおかしな挙動をするコードを示してください。 これでは何も分かりません。
guest

回答1

0

ベストアンサー

最小限のコードで問題があるか否かを確認されてみてはいかがでしょうか。
ちなみに、以下のコードをPlaygroundで試してみました。

swift

1import UIKit 2 3var str = "Hello, playground" 4 5func A(index: inout Int) 6{ 7 print("index: (index)") 8 index = 2 9} 10 11var index = 1 12A(index: &index) 13print("index: (index)")

結果は以下の通りです。この結果は期待通りだと思いますが、貴殿のおかしな挙動とはどのような結果なのでしょうか。
index: 1
index: 2

投稿2018/12/26 07:21

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamingout

2018/12/27 16:54

func Aに入った時点でXCODEの変数表示ウィンドウでは下記のようになっておりました。 index:xxxxxxxxxxx(アドレスのような数字の列) &index:1 ただ、動作を確認した結果問題ありませんでした。 普段Visual Studioを使っているものからすると、なぜウインドウでは上記のような表示になるのかが理解できません。
fuzzball

2018/12/28 00:28

Xcode 10.1で試してみましたが、 index = (int) 1 と表示されました。そのように表示させるための手順を教えて下さい。
kamingout

2018/12/28 07:42

xcodeのデフォルトの設定状態でそのような表示になっていました。 どこかで表示の設定が変えられるのでしょうか? すみません、あまりxcodeを使用しておらず詳細に設定をご説明できないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問