SwiftのString、Int、Doubleの型の変換方法をまとめました
19/03/10 13:23:08 19/06/02 14:00:56
プログラミング言語の変数や定数には型があり、最初に宣言した段階でそれを明示したり自動的に型推論されて決定したりします。言語によって詳細な扱いは異なるのですが、Swiftの場合最初に明示的、もしくは型推論で型が決定され、そこから自動で型が変わるようなことはありません。
言語によっては最初に型推論が働き、後から他の型の要素を入れると自動で型変換されるものもあります。Swiftではバグの発生確率を防ぐために型の違う要素を格納するとエラー判定される仕様になっているので、型を途中で変えたい場合変換する必要があります。
そこでこのページでは、Swiftではどのように型変換できるのかその方法をまとめました。
目次
Stringから別の型に変換する方法
まずStringからの変換ですが、主な用途としては文字列として扱っていた数値を数値として扱うために変換します。
StringからIntへの変換
StringからIntに変換するサンプルコードは以下です。
var str: String = "400"
var intNum: Int = str.toInt()!
// 400
まず変数strをString型で宣言し、要素としては400を格納しています。次にintNumという変数をInt型で宣言し、そこに先に宣言したstrをInt型に型変換して格納します。最終的にInt型の400が格納された状態になりました。
ポイントとしてはStringに対してtoIntという型変換のメソッドを使用することです。他のプログラミング言語経験のある方からすると、見慣れたコードなのではないでしょうか。Swiftの特徴はむしろ型指定の部分に現れており、型変換の使い方自体は特筆すべきポイントがありません。
逆に言えば、今回Swiftの型変換で紹介する内容は他のプログラミング言語にも応用が利きます。応用が利くというよりは、ほとんど同じです。
StringからDoubleへの型変換
StringからDoubleに変換する際にもメソッドを使用するのですが、Stringのメソッドではありません。Darwinというライブラリを外部からインポートしてそのメソッドを使用します。
具体的なコードは以下です。
import = Darwin
var str: String = "110.5"
var doubleNum: Double = atof(str)
//110.5
まずDarwinをインポートします。次に先ほどと同じようにstrという変数をString型で宣言します。doubleNumを宣言してそこにDouble型に変換した要素を入れるのですが、そこでatofメソッドを使用します。
atofメソッドは外部からインポートしたDarwinのメソッドなので、メソッドを使用する際にStringを指定する必要はありません。メソッド単体で記述すればそのまま使えます。引数に変換した変数であるstrを指定すると、Double型に変換されます。
Intから別の型に変換する方法
次にIntから別の型に変換する方法です。用途としては、数値として扱っていたものを文字列で扱いたい場合や、小数まで含めて使用する際に使用します。実際の開発現場でも頻出のコードになります。
たとえば今まで数字のみで扱っていたコードのコード数が増えてきたため、文字列も組み合わせて識別する、といった仕様変更はよくあります。そのため、特にIntからStringの変換はたとえばプロジェクトに配属されてもよく使うはずです。
IntからStringへの変換
IntからStringに変換するサンプルコードは以下です。
var intNum: Int = 100
var str: String = String(intNum)
//"100"
まずintNumをInt型で宣言し、要素として100を格納します。次にstrをString型で宣言し、そこにintNumをStringに変換して格納します。最終的に文字列の100が格納されました。
Int型をString型に変換する際はStringとそのまま書けばよいだけです。あえてString型のStringメソッドと指定する必要はなく、Stringという型名を書けば自動でメソッドとして認識されます。そのためIntからStringは型変換のなかでも特に簡単に型変換できます。
IntからDoubleへの変換
IntからDoubleへの変換はStringとほぼ同じです。サンプルコードは以下です。
var intNum: Int = 40
var doubleNum: Double = Double(intNum)
//40.0
まずintNumをInt型で宣言し、そこに40を格納します。次にdoubleNumを宣言し、intNumをDouble型に変換します。変換するメソッドはDoubleで、String同様メソッド名を各だけです。引数には変換したい変数を指定します。
StringもDoubleもInt型から変換するのは一番簡単です。Int型からの変換は使用頻度が多いため、便利なメソッドが用意されているのかもしれません。
Doubleから別の型に変換する方法
DoubleからStringとIntに変換する方法を紹介します。
DoubleからStringに変換
DoubleからStringに変換するサンプルコードは以下です。
var doubleNum: Double = 1.234
var str: String = String("\(doubleNum)")
//"1.234"
DoubleからStringに変換する方法はやや面倒で、変数の前に\を付ける必要があります。また\の後ろに指定する変数はカッコで囲います。上記の例だともともとDouble型であった小数を含む数値が、文字列に変換されました。
DoubleからIntに変換
DoubleからIntに変換するためのサンプルコードは以下です。
var doubleNum: Double = 1.234
var intNum: Int = Int(doubleNum)
//1
DoubleからStringに変換するときとは違って、変換メソッドの引数は変数を書くだけです。\の指定やカッコのなかにさらにカッコを書く必要はありません。変数の宣言から変換までの流れは上で見てきた他の変換と同じですが、出力した値が変わるという点に特徴があります。
Double型で小数点以下を含む値を格納していても、Intに変換すると小数点以下は切り捨てられます。四捨五入ではなく切り捨てなので、注意するほどではありませんが知っておいた方が良いでしょう。
まとめ
以上、Swiftでの型変換について紹介してきました。
Swiftの型変換は特別な点はなく、他のプログラミング言語での型変換とだいたい同じだったかと思います。型変換は取り立てて難しいことはないのですが、紹介した通り型によって微妙に変換方法が異なります。
たとえばメソッド単体で書くのか変数に対して指定するのか、ライブラリのインポートが必要か必要でないか、といったことです。すべてを詳細に覚える必要はまったくないですが、型変換によって記述方法が微妙に異なることは知っておくと良いでしょう。
具体的なコードについては、必要になった際に改めて調べて記述すれば問題ありません。
案件量が豊富なアルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。
アルマサーチが選ばれる理由
- 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
- 優秀なコンサルタント陣。
- 案件に参画後もしっかりサポート。
豊富な案件量
フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。
優秀なコンサルタント陣
技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。
案件に参画後もしっかりサポート
常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
▼Swift関連の記事一覧
1, 【Swiftのフリーランス案件情報付き】仕事やエンジニアの将来性・学習方法!
2, 繰り返し処理に使えるSwiftのfor文とfor-in文の便利な使い方まとめ
3, 条件分岐に便利なSwiftのSwitch文の使い方まとめ
4, アプリ開発でよく使うSwiftの4つの文法を解説します
5, Swiftのoptional型を使いこなすための7つのポイント
6, Swiftで文字列を扱うためのstring型の使い方
7, Swiftでの配列の宣言・初期化・代入・参照の方法まとめ
8, 実際の開発現場でのSwiftの変数・定数の使われ方を解説します
9, Swiftでif let文を使って出来ることとguard letの使い分けに関して
10, 開発現場でよく使うSwiftのif文の条件分岐をまとめました
11, SwiftにおけるTupleの使い方とわかりやすく解説します
12, 初心者にオススメのSwiftのサンプルコードをまとめてみました
13, (この記事)SwiftのString、Int、Doubleの型の変換方法をまとめました
14, 開発現場で役に立つSwiftのクロージャの使い方
15, Swiftでwhileを使って上手に繰り返し処理を行おう
16, Swiftで文字列の長さをチェックするのにlengthを使ってみよう
17, Swiftのdictionaryの使い方と初期化方法をまとめました
18, Swiftの値渡しと参照渡しに関するまとめ
19, Swiftで参照渡ししたい時のinoutの便利な使い方
20, Swiftでfor-in文でindexを使いたい時の方法まとめ
21, Swiftでのクラスとstruct(構造体)の使い分けを解説します
人気記事