Swift-data-types

提供:Dev Guides
移動先:案内検索

Swift-データ型

プログラミング言語でプログラミングを行っている間、さまざまなタイプの変数を使用して情報を保存する必要があります。 変数は、値を保存するために予約されたメモリの場所に他なりません。 これは、変数を作成するときに、メモリ内にスペースを確保することを意味します。

文字列、文字、ワイド文字、整数、浮動小数点、ブールなどのさまざまなデータ型の情報を保存することができます。 変数のデータ型に基づいて、オペレーティングシステムはメモリを割り当て、予約メモリに保存できるものを決定します。

組み込みデータ型

Swift 4は、プログラマーに豊富な品揃えの組み込みおよびユーザー定義のデータ型を提供します。 基本的なデータ型の次のタイプは、変数を宣言するときに最も頻繁にあります-

  • IntまたはUInt -これは整数に使用されます。 具体的には、Int32、Int64を使用して32または64ビットの符号付き整数を定義し、UInt32またはUInt64を使用して32または64ビットの符号なし整数変数を定義できます。 たとえば、42および-23。
  • Float -これは、32ビットの浮動小数点数とより小さい小数点を持つ数値を表すために使用されます。 たとえば、3.14159、0.1、および-273.158。
  • Double -これは、64ビットの浮動小数点数を表すために使用され、浮動小数点値が非常に大きくなければならない場合に使用されます。 たとえば、3.14159、0.1、および-273.158。
  • Bool -これは、trueまたはfalseのブール値を表します。
  • String -これは文字の順序付けられたコレクションです。 たとえば、「He​​llo、World!」
  • 文字-これは単一文字の文字列リテラルです。 たとえば、「C」
  • オプション-これは、値を保持するか値を保持しない変数を表します。
  • タプル-複数の値を単一の複合値にグループ化するために使用されます。

ここに、整数型に関連するいくつかの重要なポイントをリストしました-

  • 32ビットプラットフォームでは、IntはInt32と同じサイズです。
  • 64ビットプラットフォームでは、IntはInt64と同じサイズです。
  • 32ビットプラットフォームでは、UIntはUInt32と同じサイズです。
  • 64ビットプラットフォームでは、UIntはUInt64と同じサイズです。
  • Int8、Int16、Int32、Int64を使用して、8ビット、16ビット、32ビット、および64ビット形式の符号付き整数を表すことができます。
  • UInt8、UInt16、UInt32、およびUInt64を使用して、8ビット、16ビット、32ビット、および64ビット形式の符号なし整数を表すことができます。

バインドされた値

次の表は、変数の種類、メモリに値を保存するのに必要なメモリ量、およびそのような種類の変数に保存できる最大値と最小値を示しています。

Type Typical Bit Width Typical Range
Int8 1byte -127 to 127
UInt8 1byte 0 to 255
Int32 4bytes -2147483648 to 2147483647
UInt32 4bytes 0 to 4294967295
Int64 8bytes -9223372036854775808 to 9223372036854775807
UInt64 8bytes 0 to 18446744073709551615
Float 4bytes 1.2E-38 to 3.4E+38 (~6 digits)
Double 8bytes 2.3E-308 to 1.7E+308 (~15 digits)

タイプエイリアス

*typealias* を使用して、既存のタイプの新しい名前を作成できます。 typealiasを使用して新しい型を定義する簡単な構文を次に示します-
typealias newname = type

たとえば、次の行は、 FeetInt の別名であることをコンパイラに指示します-

typealias Feet = Int

さて、次の宣言は完全に正当であり、距離と呼ばれる整数変数を作成します-

typealias Feet = Int
var distance: Feet = 100
print(distance)

プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます。

100

タイプセーフティ

Swift 4はタイプセーフな言語です。つまり、コードの一部がStringを想定している場合、誤ってIntを渡すことはできません。

Swift 4はタイプセーフなので、コードのコンパイル時にタイプチェックを実行し、不一致のタイプがある場合はエラーとしてフラグを立てます。

var varA = 42
varA = "This is hello"
print(varA)

上記のプログラムをコンパイルすると、次のコンパイル時エラーが発生します。

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

型推論

型推論により、コンパイラは、指定した値を調べるだけで、コードをコンパイルするときに特定の式の型を自動的に推測できます。 Swift 4は型推論を使用して、次のように適切な型を算出します。

//varA is inferred to be of type Int
var varA = 42
print(varA)

//varB is inferred to be of type Double
var varB = 3.14159
print(varB)

//varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)

プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-

42
3.14159
3.14159