Swift実践入門

1.1 言語の特徴

静的型付き言語

Swiftは、型注釈で型を指定できる。(型安全性)

#code(csharp){{
var a: Int // aはInt型
a = 456
a = "abc" // String型の代入はエラー
}}

nilの許容性をコントロール可能

nilは、「値が存在しない」ことを示す単語。

基本的に、nilを代入できない。
例外的に、nilを代入できる仕組みとして、Optional型が用意されている。

#code(csharp){{
let a: Optional<Int> // aはOptional<Int>型(nilも代入できる)
let b: Int // bはInt型(nilを代入できない)

a = nil
b = nil
}}

型推論による簡素な記述

Swiftには、型推論という機能が用意されており、型注釈を省略しても一応動作する。
(型のエラーが発生した場合は、デバッグ時に型注釈を追記していけばOK)

#code(csharp){{
let a = 123
let b = "abc"

print (type(of: a)) // Int
print (type(of: b)) // String
}}

ジェネリクスによる汎用的な記述

Swiftには、ジェネリクス(総称型)が用意されている。
ジェネリクスは、関数で扱う引数の型を「型引数」で指定/変更できる機能。
ジェネリクスが使えると、似たような機能を一つのまとめることができるので便利。

#code(csharp){{
// ジェネリクスを利用しているmax(_:_:)関数
// func max<T : Comparable>(_ x: T, _ y: T) -> T

let x = 123
let y = 456
let z = max(x, y)
print(z) // 456

let a = "abc"
let b = "def"
let c = max(a, b)
print(c) // "def"
}}

Objective-Cと連携可能

macOS向けの「Cocoa」やiOS向けの「Cocoa Touch」は、大部分がObjective-Cで書かれているフレームワーク。
Swiftは、Objective-Cと高い互換性を持っており、SwiftからCocoaやCocoa Touchの資産も利用可能。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-09-14 (木) 16:47:17