Help us understand the problem. What is going on with this article?

XcodeでSwiftの型を把握する

More than 3 years have passed since last update.

Swiftは型推論機能が備わっているプログラミング言語です。
そうでない言語と比べると型を明示的に書く必要がないため、
すっきり書くことができます。

しかし、型推論を利用して書かれたコードに修正を入れるときに
そこで使われている型を把握する必要があるかもしれません。

let number = getNumber()

このコードを例にとると
numberという定数、getNumberの返り値は
Int? Float? Double? NSNumber?
と選択肢が複数あり、この1行では判断できません。

private func getNumber() -> Float {
   return 1.0
}

・関数の実装にJumpすると把握できますがJump前にいた場所に戻る手間がかかります。

print(number.dynamicType) // Float

・printで表示もできますが実行する必要が有ります。

hokan.png

・Xcodeでちょっと書いて補完して見るのもありですがやや面倒です。
あと補完が働かない時や遅い時があるので安定しません。

上記の方法が有効ではないというわけではないのですが、
例に取ったようなコードが複数あると把握する作業に時間が取られると思います。

他に方法ないの?

最後になってしまいましたが、おそらく一番楽そうな方法を紹介します。

まず、Xcode調べたい変数にカーソルを移動して
cursorover.png

Xcodeの右メニュー(Utilities)を表示して左から二つ目の項目を見ましょう。
number_right.png

定数の情報が載っています。

let number: Float

関数にカーソルオーバーすると
func_right.png
こんな感じです。

クロージャの情報も見れます。

let closure: (Int -> String) = { intValue in
    return String(intValue)
}

let any = closure(1)

closure_right.png
any_right.png

カーソル移動だけで型を把握できるので楽かなと思います。

まとめ

今回学んだことはたまには自分の使っている
ツールやコーディングの仕方を見直すことも大事だと思いました。

今までは、型を調べる時にCommand+Clickで定義にJumpして調べる方法を取っていました。
あ、Quick Help見ながらの方が早かったな、と思う事例があったので
次回からはこの方法を選択肢に入れて楽しいSwiftライフを送っていきたいです。

\(^o^)/

bannzai
dena_coltd
    Delight and Impact the World
https://dena.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away