削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
敬体に統一。Cat.;s/暗黙の型変換(cast)/暗黙の型変換( ''implicit conversion'' )/2
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎オプショナル型: Swiftには「オプショナル型」と「非オプショナル型」があります。 ; オプショナル型: 値としてnilを受け入れられる。 ; 非オプショナル型: 値としてnilを受け入れられる。 ここまでに紹介した変数および定数の型は非オプショナル型です。 オプショナル型の変数および定数は宣言のときに <code>Optional<型名></code>と書きます。 これには構文糖があり <code>型名?</code> あるい <code>型名?</code> と書くことも出来ます。→‎アンラップ: Optinal型の変数名に ! つけるとOptional型から基底型の値を参照できます。これをアンラップを呼びます。
タグ: 2017年版ソースエディター
112 行
また、変数名などの中に半角スペースを入れるのは許されません。(半角スペースがあると2個の単語として認識され、エラーになります。)
 
[TODO: 「識別子」の説明に書換え]
 
下記のように、先に変数名だけ宣言しておいて、あとで値を代入することも可能です。
124 ⟶ 125行目:
</syntaxhighlight>
 
=== 仕様オプショナル型 ===
Swiftには「オプショナル型」と「非オプショナル型」があります。
型推論が可能な場合には型アノテーション(''type annotation''; <code>: 型名</code>の部分)を省略できます。
; オプショナル型: 値としてnilを受け入れられる。
; 非オプショナル型: 値としてnilを受け入れられる。
ここまでに紹介した変数および定数の型は非オプショナル型です。
 
オプショナル型の変数および定数は宣言のときに <code>Optional<型名></code>と書きます。
これには構文糖があり <code>型名?</code> あるい <code>型名?</code> と書くことも出来ます。
:<syntaxhighlight lang="swift">
var a: Int = nil // これはエラー
var b: Optional<Int> = nil // これならエラーにならない
var c: Int? = nil // これでもエラーにならない
var d: Int! = nil // これでもエラーにならない
</syntaxhighlight>
 
==== アンラップ ====
:<syntaxhighlight lang="swift">
var s: String? = nil
print(s)
s = "abc"
print(s)
print(s!)
</syntaxhighlight>
;実行結果:<syntaxhighlight lang="text">
nil
Optional("abc")
abc
</syntaxhighlight>
Optinal型の変数名に ! つけるとOptional型から基底型の値を参照できます。これをアンラップを呼びます。
 
=== 型推論 ===
初期値を伴って変数(あるいは定数)が宣言された場合、型推論が可能な場合には行われ、型アノテーション(''type annotation''; <code>: 型名</code>の部分)を省略することができます。
:<syntaxhighlight lang="swift">
let a: Double = 3.141592
131 ⟶ 162行目:
</syntaxhighlight>
 
=== 暗黙の型変換は行われない ===
なお、いかなる数値型の変数についても'''暗黙の型変換'''( ''implicit conversion'' )が行われることはなく、型の違う数値同士の演算、右辺と左辺で型の異なる代入は全てコンパイルエラーとなります。一方、数値リテラルについては、整数型から浮動小数点型への暗黙の型変換が行われることがあります。
:<syntaxhighlight lang="swift">