LoginSignup
3
3

More than 5 years have passed since last update.

LINE Developer Meetup in Fukuoka #5

Posted at

Swift おさらい

以下に内容をメモしましたが、スライドが公開されたのでそちらをみた方が確実です。
http://www.slideshare.net/taketin/swift-36238223

Swiftとは?

Swift is "Objective-C without the C"

特徴

  • モダン

  • 安全

  • 高速

  • インタラクティブ

仕様

変数(var)
定数(let)
型推論

変数名は日本語、ユニコード絵文字も一部使用可。

暗黙の型変換はしない。

変数の展開 
\()で展開

optional Value

nil許容(型の後ろに?をつける)
「wrap」する
「unwrap」する !

OpitionalChaining

メソッドチェーンを書く

Tuple

var response = (404, #NotFound")

Bool型

Yes、Noがなくなった

コレクション

  • 配列
     いろんな書き方がある。

  • 配列イテレーション

  • 配列のコピー
    参照渡し、コピーがあるので注意

  • 配列範囲指定
     ..は未満 ...は以下(Rubyとは逆なので注意)

  • ディクショナリ
    キーの型はhashableでなくてはならない。

  • ディクショナリイテレーション

  • ディクショナリのコピー

コントロール

  • if文
  • while文
  • for文
  • switch文  基本berak動作

列挙型(Enum)

パワーアップ!
Associated Values

関数

func foo(bar;String,baz:lnt)->String{}

  • キーワード指定可
  • 引数の省略可
  • 引数の可変長可
  • 返値が関数、返値がタップ

クロージャ

  • 型推論が聞く
  • 式が一つだけの場合Returnを省略できる
  • 引数をプレースホルダで置換できる
  • blocks内でselfを使った場合の循環参照回避

クラス

基本はキャメルケースで名前を書く

  • コンストラクタ
  • コンビニエンスコンストラクタ  コンストラクタ引数を省略することができる
  • 継承
  • メソッドオーバーライド
  • コピー  クラスは参照渡し +比較(===)
  • Getter,Setter  getのみでReadOnryにできる
  • willSet,didSet
  • 遅延ロード

Subscript

オブジェクトへの添え字アクセスができる
アクセスコントロールも可能

構造体

  • 初期化が必要
  • mutationg
  • コピー(構造体は値渡し)

protpcol

Extention

クラスだけではなく型などにも適用できる
プロトコルの継承もできる

Generics

  • 型制約なし
  • 型制約あり

TypeCastion

  • Any & AnyObject
  • 型チェック
  • ダウンキャスト  オプショナルで安全に使える

Operator Functions

  • 存在する演算子を拡張
  • 存在しない演算子を定義

おまけ:正規表現

おまけ:名前空間

「Swiftは名前空間は暗黙のうちに提供される」

おまけ:今後の展望

  • アクセス修飾子
  • CocoaPods
  • 汎用言語として公開して欲しい

SwiftとObjectve-Cの蜜月関係

今までの資産はどうなるのか?

Swift->Objective-C

  • SwiftからObjectibe-Cのコードを呼び出す
  • SwiftでObjectibe-Cのクラスをサブクラス化する

AFNetworkingって何? オープンソースウエア

Objective-C->Swift

  • Swiftで作ったクラスはObjectibe-Cのサブクラス化できない。

私的感想

  • Swiftを使うと生産性が上がる&安全性が高くなる
  • Objective-Cで作っていたクラスを呼び出すことができるので過去の資産も使える
    だが、安全性を考えるとなるべく使わない方がいいのかなと思った。

  • コードの短縮は便利な反面、可読性が低くなるのでチームや会社でコーディングする時は規約をしっかり決めないと、各自が自由なコードを書いて保守が大変になりそう。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3