SlideShare a Scribd company logo
Swift 
Tanaka Keisuke 
Copyright © Classmethod, Inc.
自己紹介 
田中 圭介(たなか けいすけ) 
iOS 開発歴 4年 
クラスメソッド入社18日目 
Copyright © Classmethod, Inc. 
Just Quick Search
About Swift 
Copyright © Classmethod, Inc.
ざっくり 
行末に「;」は不要 
オブジェクト型の変数に「*」は不要 
文字列に「@」は不要 
if, switch, for に「()」は不要 
メソッド呼び出しは「object.function()」と書く 
Copyright © Classmethod, Inc.
Swift is Simple! 
Copyright © Classmethod, Inc.
Swift の基本 
Copyright © Classmethod, Inc.
変数と定数 
変数は var 
var today = 18 
! 
! 
定数は let 
let absoluteZero = -273.15 
Copyright © Classmethod, Inc.
型推論 
var today = 18 // Int 
! 
! 
let absoluteZero = -273.15 // Double 
! 
! 
let language = "Swift" // String 
Copyright © Classmethod, Inc.
明示的に宣言 
let absoluteZero = -273.15 // Double 
! 
! 
let absoluteZero: Float = -273.15 // Float 
Copyright © Classmethod, Inc.
配列 - Array 
var newModels = ["6", "6 Plus"] // 初期化 
! 
newModels[0] // -> 6 
newModels[1] // -> 6 Plus 
// こんな初期化も可能 
var newModels = [String]() 
var newModels: [String] = [] 
Copyright © Classmethod, Inc.
辞書 - Dictionary 
// 初期化 
var faceCards = ["Jack": 11, "Queen": 12, "King": 13] 
! 
faceCards["King"] // -> 13 
// こんな初期化も可能 
var faceCards = [String: Int]() 
var faceCards: [String: Int] = [:] 
Copyright © Classmethod, Inc.
タプル 
複数の構成要素からなる組を表すデータ構造 
異なる型の要素を代入することが可能 
メソッドの戻り値として利用することも可能 
let episode = (number: 4, subTitle: "A New Hope”) 
! 
episode.number // -> 4 
episode.subTitle // -> A New Hope 
Copyright © Classmethod, Inc.
switch 文 
整数以外の式の評価が可能 
break は不要 
breakしたくない時は fallthrough 
全ての case を網羅する必要あり 
Copyright © Classmethod, Inc.
for 文 
for-in でコレクションの要素にアクセス可能 
範囲指定には「..<」, 「…」を使用 
従来のセミコロン区切りの記述も可能 
for _ in 0..<3 { 
println("loop") 
} 
println("wan!") 
Copyright © Classmethod, Inc.
Optional Value 
通常、変数に nil を代入することはできない 
nil を代入したいときは宣言時、型名の後に「?」を付ける 
var text = nil // コンパイルエラー 
var text: String? // OK 
変数 text は「ラップされている」 
Copyright © Classmethod, Inc.
Optional Value 
String と String? は別の型 
使用するためには「アンラップ」する必要がある 
text.isEmpty // コンパイルエラー 
text?.isEmpty // OK  
text!.isEmpty // ランタイムエラー 
Copyright © Classmethod, Inc.
Optional Value 
「?」は変数が nil かもしれない時に付ける 
「!」は変数が絶対に nil ではないときに付ける 
Copyright © Classmethod, Inc.
実際に書いてみた感想 
Copyright © Classmethod, Inc.
よかったこと 
ずいぶんシンプルに書けるようになった 
ヘッダーファイルがなくなった 
switch, enum, タプル , _ (アンダースコア) 便利 
Copyright © Classmethod, Inc.
わるかったこと 
すべてのファイルが import されている!? 
String, Array, Dictionary が若干機能不足 
Optional Value のチェックが厳しい 
Copyright © Classmethod, Inc.
最後に 
Swift はできたてホヤホヤの新言語 
バグもあるだろうし、進化もするでしょう 
全てを含めて楽しませていただきます 
Copyright © Classmethod, Inc.
Swiftの概要をザックリと

More Related Content

PDF
[iOS8] 新たな線形代数ライブラリ Linear Algebra
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
PDF
Effective Modern C++ 勉強会#1 Item3,4
PDF
.NET系開発者から見たJava
PDF
F#によるFunctional Programming入門
PDF
多相な関数の定義から学ぶ、型クラスデザインパターン
KEY
Algebraic DP: 動的計画法を書きやすく
PPTX
Emcpp0506
[iOS8] 新たな線形代数ライブラリ Linear Algebra
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
Effective Modern C++ 勉強会#1 Item3,4
.NET系開発者から見たJava
F#によるFunctional Programming入門
多相な関数の定義から学ぶ、型クラスデザインパターン
Algebraic DP: 動的計画法を書きやすく
Emcpp0506

What's hot (6)

PDF
templateとautoの型推論
PDF
現実(えくせる)と戦う話
PDF
Implicit Implicit Scala
PDF
Implicit Explicit Scala
PDF
What is template
PDF
templateとautoの型推論
現実(えくせる)と戦う話
Implicit Implicit Scala
Implicit Explicit Scala
What is template
Ad

Viewers also liked (8)

PDF
新しいTest flightの使い方(20140918)
PDF
[iOS 8] HealthKitで変わるミライ
PDF
[iOS 8] 測れる!パフォーマンス
PDF
[iOS 8] iOS8勉強会 PhotoKit
PDF
20140918 i os8イベント_ios-history (公開用)
PDF
"アプリデザインはじめの一歩" ヤフー VS クラスメソッド iOS炎の7番勝負 #4 #yxcm
PDF
iOS 9 Bootcamp #6 UIKit
PDF
User Scenario based UI testing with KIF
新しいTest flightの使い方(20140918)
[iOS 8] HealthKitで変わるミライ
[iOS 8] 測れる!パフォーマンス
[iOS 8] iOS8勉強会 PhotoKit
20140918 i os8イベント_ios-history (公開用)
"アプリデザインはじめの一歩" ヤフー VS クラスメソッド iOS炎の7番勝負 #4 #yxcm
iOS 9 Bootcamp #6 UIKit
User Scenario based UI testing with KIF
Ad

Similar to Swiftの概要をザックリと (20)

PPTX
PHP AST 徹底解説
PDF
Swiftの新機能 Optional
PDF
コードビュー中心で開発するDreamweaverテンプレート
PDF
Unity2015_No10_~UGUI&Audio~
PPTX
Xtext&Xtend documents
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
PDF
Enumはデキる子 ~ case .Success(let value): ~
PDF
Swift らしい表現を目指そう #eventdots
PPT
Start!! Ruby
PDF
知って得するC#
PDF
asm.js x emscripten: The foundation of the next level Web games
PDF
エンジニア戦記 〜小さなチーム、大きな未来〜
PDF
初心者講習会資料(Osaka.R#7)
PPTX
Javaプログラミング入門【第2回】
PDF
Java8から17へ
PPTX
JavaScriptクイックスタート
PDF
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
PPTX
flow による型のある世界入門
PDF
初心者講習会資料(Osaka.r#6)
PDF
Hello Dark-Side C# (Part. 1)
PHP AST 徹底解説
Swiftの新機能 Optional
コードビュー中心で開発するDreamweaverテンプレート
Unity2015_No10_~UGUI&Audio~
Xtext&Xtend documents
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
Enumはデキる子 ~ case .Success(let value): ~
Swift らしい表現を目指そう #eventdots
Start!! Ruby
知って得するC#
asm.js x emscripten: The foundation of the next level Web games
エンジニア戦記 〜小さなチーム、大きな未来〜
初心者講習会資料(Osaka.R#7)
Javaプログラミング入門【第2回】
Java8から17へ
JavaScriptクイックスタート
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
flow による型のある世界入門
初心者講習会資料(Osaka.r#6)
Hello Dark-Side C# (Part. 1)

Swiftの概要をザックリと