スウィフトのデータ型
我々は、任意のプログラミング言語のプログラミングを使用すると、さまざまな情報を格納するためのさまざまなデータ型を使用する必要があります。
変数のデータ型は、コンピュータのメモリにどのようにビットのメモリ、これらの値を決定します。 あなたは変数を宣言するときにも、そのデータ型を指定することができます。
すべての変数は、データを格納することができるかを決定するためにデータ・タイプを持っています。
組み込みデータ型
スウィフトは非常に豊富なデータ型を提供し、ここでいくつかの一般的に使用されるデータ型は、次のとおりです。
int型
一般的に、あなたは、具体的には長整数を指定する必要はありません。 スウィフトは特殊な整数型提供Int
、元の語彙と同じ現在のプラットフォームの長さの長さを:
- 32ビット・プラットフォームでは、
Int
とInt32
同じ長さ。 - 64ビット・プラットフォームでは、
Int
とInt64
同じ長さ。
あなたは一般的な使用中の特定の長さの整数、必要がない限りInt
十分。 これは、コードの一貫性と再利用性を向上させることができます。 でも32ビット・プラットフォームで、 Int
格納できる整数の範囲に到達することができます-2,147,483,648
〜 2,147,483,647
、これはすでに十分な大きさのほとんどの時間を。
UINT
スウィフトは、特別な符号なしの型提供UInt
、元の語彙と同じ現在のプラットフォームの長さの長さを:
- 32ビット・プラットフォームでは、
UInt
とUInt32
同じ長さ。 - 64ビット・プラットフォームでは、
UInt
とUInt64
、同じ長さ。
注意:
使用しないようにしてくださいUInt
、あなたが本当に現在のプラットフォームと同じ長さの符号なし整数の元の語彙を格納する必要がある場合を除きます。 これに加えて、使用することが好ましいInt
使用して、既知の非負の値を格納する場合でも、。 統一された使用Int
、コードの再利用性を向上させることができ、デジタルの異なる種類の間の変換、およびデジタル・マッチング型推論を回避するために、参照してくださいセキュリティと型推論のタイプ 。
フロート
フロートは、次のような、小数部を持つ数である3.14159
、 0.1
と-273.15
。
以上格納できる整数型の浮動小数点型の表現よりも広いInt
大きいか小さいタイプ番号を。 スウィフトは2符号付き浮動小数点型を提供しています:
-
Double
64ビット浮動小数点を表します。 あなたが大規模または非常に高精度の浮動小数点数を格納する必要がある場合には、このタイプを使用してください。 -
Float
32ビットの浮動小数点数を表します。 あまり精度は、我々は、このタイプを使用することができます。
注意:
Double
精度は、少なくとも15桁非常に高く、Float
わずか6桁の数字が起こりました。 これに応じて、値の範囲を選択して対処する必要があり、あなたのコードを入力します。
ブール値
スウィフトは、ブールと呼ばれる基本的なブール値(ブール)タイプがあります。 彼らは唯一の真または偽であることができるので、ブール値は、値のロジックを指します。 スウィフトは2ブール定数、trueとfalseがあります。
文字列
文字列は文字の配列のセットである、のような:
"Hello, World!"
文字
文字には、例えば、単一の文字を参照します:
"C"
オプションの種類
不足している値であってもよいケースを処理するには、オプションの種類(optionals)を使用します。 オプションのタイプは、値または値なしを表します。値の範囲
次の表は、メモリ変数と変数タイプの異なるタイプの最小値と最大ストレージ容量を示しています。
タイプ | サイズ(バイト) | 区間値 |
---|---|---|
INT8 | 1バイト | 127 -127 |
UINT8 | 1バイト | 0-255 |
INT32 | 4バイト | 2147483647へ-2147483648 |
UInt32型 | 4バイト | 0-4294967295 |
Int64型 | 8バイト | -9223372036854775808へ9223372036854775807 |
UInt64型 | 8バイト | 0から18446744073709551615 |
フロート | 4バイト | 1.2E-38 3.4E + 38(〜6桁)へ |
ダブル | 8バイト | 2.3E-308 1.7E + 308(〜15桁)へ |
タイプの別名
現在の型が別の名前を定義するためのエイリアスを入力し、typealiasキーワードを使用して定義された別名を入力します。 構文は次のとおりです。
typealias newname = type
次の例では、int型のエイリアス足を定義します。
typealias Feet = Int
今、私たちは、変数の別名を定義することができます。
import Cocoa typealias Feet = Int var distance: Feet = 100 print(distance)
私たちは遊び場に上記のプログラムを使用し、出力は次のようになります。
100
タイプのセキュリティ
スウィフトは、セキュリティのタイプ(タイプセーフ)言語です。
それはあなたのコードをコンパイル時検査(型チェック)のタイプになり、エラーとしてマークのタイプと一致しませんので、スウィフトは、タイプセーフであるため。 これはあなたが見つけると、時間の開発に早期のエラーを修正することができます。
import Cocoa var varA = 42 varA = "This is hello" print(varA)
上記の手順は、Xcodeで与えられます:
error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
意味は「int型の変数に割り当てられた「文字列」の文字列にすることはできません。
型推論
あなたは、値の異なる種類に対処しなければならない場合には、型チェックは、あなたがミスを避けるのを助けることができます。 ただし、これは定数と変数を宣言するたびに、明示的に型を指定する必要があることを意味するものではありません。
あなたが明示的に型を指定しない場合は、スウィフトは、適切なタイプを選択するために、型推論(型推論)を使用しています。
新しい定数値42を与えると型を示していない場合は、それを割り当てる初期値は、整数のように見えるので、例えば、スウィフトは、一定のInt型を推論することができます。
let meaningOfLife = 42 // meaningOfLife 会被推测为 Int 类型
あなたは浮動小数点リテラルのタイプを示すために持っていない場合は同様に、スウィフトは、あなたが望む推測されますダブルです。
let pi = 3.14159 // pi 会被推测为 Double 类型
ときは、浮動小数点型推論、スウィフトは常に代わりにダブル浮動の選択します。
整数と浮動小数点と同じ表現する場合は、Double型を推論されます。
let anotherPi = 3 + 0.14159 // anotherPi 会被推测为 Double 类型
3の元の値が明示的に型を宣言しないと、式は浮動小数点リテラルがあり、式はDouble型に推測されます。
例
import Cocoa // varA 会被推测为 Int 类型 var varA = 42 print(varA) // varB 会被推测为 Double 类型 var varB = 3.14159 print(varB) // varC 也会被推测为 Double 类型 var varC = 3 + 0.14159 print(varC)
上記のコードの実装、出力は次のようになります。
42 3.14159 3.14159