削除された内容 追加された内容
M編集の要約なし
編集の要約なし
30 行
 
== 基本データ型 ==
=== 数値 ===
符号付き整数の型には、<code>Int</code>、<code>Int8</code>、<code>Int16</code>、<code>Int32</code>、<code>Int64</code>がある。<code>Int</code>は、32ビット環境では<code>Int32</code>と同じサイズ、64ビット環境では<code>Int64</code>と同じ。
 
符号無し整数の型には、<code>UInt</code>、<code>UInt8</code>、<code>UInt16</code>、<code>UInt32</code>、<code>UInt64</code>がある。<code>UInt</code>は、32ビット環境では<code>UInt32</code>と同じサイズ、64ビット環境では<code>UInt64</code>と同じ。
 
浮動小数点数の型には、IEEE 754 単精度<code>Float</code>と、倍精度の<code>Double</code>がある。
 
先述の通り、上記の型に対して暗黙の型変換(cast)が行われることは一切ない。
 
=== 配列 ===
配列は、'''<code>Array<型></code>'''ないし'''<code>[型]</code>'''と宣言する。より直感的な後者が推奨されている。
42 ⟶ 51行目:
let falsies = [false, 0, 0.0, ""] // [Any] 型の混在
</syntaxhighlight>
 
なお、<code>[]</code>は空の配列リテラルであるが、要素の型を何らかの形で指定する必要がある
<source lang="swift">
var ints: [Int] = []
var doubles: [Double] = []
var any: [Any] = []
var unknown = [] // 型推論ができないため、コンパイルエラー
</source>
 
配列の結合、代入
<source lang="swift">
var ints1: ArraySlice<Int> = [10,20,30]
var ints2: ArraySlice<Int> = [40,50]
ints1 = ints1 + ints2 // [10,20,30,40,50]
ints2[1] = 55 // [40,55]
ints1[1...2] = ints2 // [10,40,55,40,50]
ints1 = ints2 // [40,55]
</source>
 
=== 辞書 ===
56 ⟶ 83行目:
let name2num = ["zero":0, "one":1, "two":2] // Dictionary<String, Int>
</syntaxhighlight>
 
<code>[:]</code>が空の辞書リテラルであるが、キーの型および値の型が指定されている必要がある点は配列と同様である。
<source lang="swift">
var dict: [String: Int] = [:]
var unknowndict = [:] // 型推論ができないため、コンパイルエラー
</source>
 
=== タプル ===
66 ⟶ 99行目:
</syntaxhighlight>
 
タプルの各要素には名前をつけることができる。名前付きタプルに対して、数値インデックスによって各要素にアクセスすることも可能
<syntaxhighlight lang="swift">
let okStatus = (code: 200, message: "OK")
156 ⟶ 189行目:
| <code>*</code> || 乗算 || <code>&*</code> || 乗算(オーバーフローを無視する)
|-
| <code>/</code> || 除算(整数型のゼロ除算はエラーとなる) || <code>&/</code> || 除算(オーバーフローを無視し、ゼロ除算の結果は<code>0</code>となる)<br />(※)(※廃止済み)
|-
| <code>%</code> || 剰余(整数型のゼロでの剰余演算はエラーとなる) || <code>&%</code> || 剰余(オーバーフローを無視し、ゼロでの剰余演算の結果は<code>0</code>となる)<br />(※)(※廃止済み)
|-
|}
166 ⟶ 199行目:
!colspan="4" | 単項演算子(前置)
|-
! 文法 !! 意味 !! 文法 !! 意味
|-
| <code>+</code> || 単項プラス || <code>-</code> || 単項マイナス(符号反転)
|-
| <code>-</code> || 単項マイナス(符号反転)
| <code>++</code> || インクリメント(式はインクリメントされた'''後'''の値を返す)<br />※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref> || <code>--</code> || デクリメント(式はデクリメントされた'''後'''の値を返す)<br />※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref>
|-
| <code>++</code> || インクリメント(式はインクリメントされた'''後'''の値を返す)<br />※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref> || <code>--</code> || デクリメント(式はデクリメントされた'''後'''の値を返す)<br />※Swift)※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref>
|-
| <code>--</code> || デクリメント(式はデクリメントされた'''後'''の値を返す)※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref>
|}
 
178 ⟶ 214行目:
!colspan="4" | 単項演算子(後置)
|-
! 文法 !! 意味 !! 文法 !! 意味
|-
| <code>++</code> || インクリメント(式はインクリメントされる'''前'''の値を返す)<br />※Swift)※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref>
|-
| <code>--</code> || デクリメント(式はデクリメントされる'''前'''の値を返す)<br />※Swift)※Swift 3.0で廃止<ref name="SE-0004">[https://github.com/apple/swift-evolution#accepted-proposals-for-swift-30 Accepted proposals for Swift 3.0]</ref>
|}
 
221 ⟶ 259行目:
! 文法 !! 意味
|-
| <code>~=</code> || パターンマッチ<br />(左辺の範囲内に右辺が有ればtrue)
|}
|}