SlideShare a Scribd company logo
EZ-NET 熊⾕友宏
http://ez-net.jp/
2015.12.20
@ 集まれ Swift 好き!Swift 愛好会
リテラルと型の話
Swift カジュアルプログラミング
Swift 2.1.1
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
CodePiece
iOS, OS X, Apple Watch アプリ
ソースコードを Twitter と
Gist に同時投稿できる。
いつもの電卓
計算式も見える電卓アプリ。
watchOS 1 対応
音で再配達ゴッド
簡単操作で
再配達の申し込み。
EZ-NET IP Phone
iPhone でひかり電話を使う。
自宅 LAN からの利用専用
CodePiece for OS X
勉強会を楽しむアプリ
ソースコードを Twitter と Gist に同時投稿できる

勉強会で知見をみんなと共有したい時とかに便利!
できること
#__swift__
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
横浜 iPhone 開発者勉強会
#yidev
勉強会
わいわい・ゆるく、iPhone 開発者の

みんなで楽しく過ごすのが目的の会
【 横浜・馬車道 】
カジュアル Swift 勉強会
#cswift
ゆるくみんなで Swift を語らえる場を

作りたくて始めた会
【 横浜・青葉台 】
第22回を 2016-03-05 に開催予定 第4回を 2015-12-26 に開催
熊谷友宏
EZ-NET http://ez-net.jp/
@es_kumagai
Xcode 5 徹底解説 MOSA
書籍 / 登壇
Xcode 5 の全機能を

徹底的に解説した本
OSX/iOS 系の歴史深い

有料会員制の勉強会
紙版は絶版、電子書籍は販売中
秀和システム 10x-Eng.com で取扱予定
Xcode 7 でも役立つはず 法人会員も多数
混乱しがちな?
リテラルの話
リテラルの話
1. リテラルの基礎を知り
2. リテラルの仕組みを把握して
3. リテラルの実際の動きを掌握する
構成
リテラル
概要
リテラル
▶ コードで値を書くのに使う
▶ 具体的な内容を記述する
概要
"Swift"
2.1
リテラル
▶ 整数リテラル
▶ 小数点数リテラル
▶ 真偽値リテラル
▶ 文字列リテラル
▶ nil リテラル
▶ 配列リテラル
▶ 辞書リテラル
種類
… 3
… 3.1
… true, false
… "STRING"
… nil
… [ value, ... ]
… [ key : value, ... ]
リテラル【 Literal 】
▶ 書いたまんま、というのを表す言葉
▶ 高級言語の用語で、コードに直接記載された値
即値【 Immediate 】
▶ 直接的なものを表す言葉
▶ アセンブラ用語で、コードに直接埋め込んだデータ
言葉が違うからリテラルを即値と訳すのは誤りとする説も
ありますが、訳として間違いとも言えない気もします。
【補足】リテラルと即値
リテラルを書く
リテラルの書式 (1/7)
▶ 2進数、8進数、10進数、16進数で表記可能
▶ 各数字の後ろに自由に _ を挿入できる
整数リテラル
200 // 10 進数
0xc8 // 16 進数
0o310 // 8 進数
0b11001000 // 2 進数
20_000_000 // _ は無視される
リテラルの書式 (2/7)
▶ 10進数、16進数で表記可能
▶ 各数字の後ろに自由に _ を挿入できる
小数点数リテラル
2.10 // 10進数
1.25e-4 // 10進数 … 1.25 × 10-4
0x15.8p3 // 16進数 … 0x15.8 × 23
1.001_001_e-8 // _ は無視される
リテラルの書式 (3/7)
▶ 真か偽かの2種類だけ
真偽値リテラル
true // 真を表現
false // 偽を表現
リテラルの書式 (4/7)
▶ 引用符で括って文字列を表現
▶ 特別な文字も挿入可能
文字列リテラル
"Swift" // Swift
""Swift"" // "Swift"
"Header:tText" // Header: Text
"!u{20DD}" // ! ⃝
リテラルの書式 (5/7)
▶ 無 を表現
nil リテラル
nil // 無
リテラルの書式 (6/7)
▶ 複数の要素を持つことを表現
▶ 各要素は自由に指定
配列リテラル
[ 1.5, val, "STR" ] // 3つの要素を持つ配列
[] // 何も要素を持たない配列
リテラルの書式 (7/7)
▶ 複数の要素を持つことを表現
▶ 各要素は キー と 値 の対で自由に指定
辞書リテラル
[ "A": 10, "B": 20 ] // 2つの要素を持つ辞書
[ : ] // 何も要素を持たない辞書
リテラルを使う
リテラルの使い方
▶ 変数に入れて使う
コード内にリテラルを書く
let name = "Swift"
let version = 2.1
リテラルの大事なところ
基礎
リテラルに型はない
リテラルの大事なところ
▶ リテラルだけでは値はできない
リテラル自体に型はない
let value = nil
Type of expression is ambiguous with more context
リテラルを型に嵌める必要がある
リテラルの大事なところ
▶ リテラルが型の値に変換される
▶ 前後関係から適切な型が決定される
型を明記して値にする
let value = nil as Int?
let value: Int? = nil
でも、型を明記しないで
リテラルを使えていたような?
let name = "Swift"
let version = 2.1
リテラルの既定の型
リテラルの大事なところ
▶ リテラルは型を明示して値にする
▶ 明示されないときは 既定の型 とみなす
リテラルを型に嵌める
// 整数リテラルが Double 型に決まる
let value = 10 as Double
// 整数リテラルが Int 型とみなされる
let value = 10
Double 型
Int 型
型が明示されないときの既定の型
リテラルの大事なところ
▶ 整数リテラル
▶ 小数点数リテラル
▶ 真偽値リテラル
▶ 文字列リテラル
▶ nil リテラル
▶ 配列リテラル
▶ 辞書リテラル
… Int 型
… Double 型
… Bool 型
… String 型
… なし
… Array 型
… Dictionary 型
リテラルの大事なところ
▶ 前後関係からも型が推論される
▶ たとえば、代入や計算
前後関係からも型が決まる
// Double 型の変数があるとき
let value:Double = 10
// 整数リテラルが Double 型とみなされる
let answer = value * 10
Double 型
リテラルの大事なところ
▶ 前後関係からも型が推論される
▶ たとえば、関数の引数
前後関係からも型が決まる
// Double 型を受け取る関数があるとき
func doSomething(value:Double) {
}
// 渡したリテラルが Double 型とみなされる
doSomething(10)
Double 型
型が既に決められている場合はそれに従う
let array: [Int] = [10, 20, 30]
内容から [Double] 型と推論
let array = [3.01, 3.12, 3.23, 3.34]
オブジェクト型は継承関係も考慮して推論
let array = [りんご(), みかん(), ぶどう()]
プロトコルの準拠性や継承関係では推論されない
【余談】配列リテラルからの型推論
[Int] 型
[Double] 型
[くだもの] 型
リテラルを型に嵌める仕組み
実践
型がリテラルを引き受ける仕組み
▶ 型がリテラルの受け入れを表明する
▶ 対応リテラルは LiteralConvertibleで決定
// IntegerLiteralConvertible を表明していれば
enum MyVariant : IntegerLiteralConvertible {
}
// 整数リテラルを受け入れられる
let value: MyVariant = 10
リテラルを受け入れられる型
型がリテラルを引き受ける
▶ イニシャライザーでリテラルを受け取る
▶ 受け取った値を適切なデータに変換する
enum MyVariant : IntegerLiteralConvertible {
case IntegerValue(Int)
case FloatingPointValue(Double)
init(integerLiteral value: Int) {
self = .IntegerValue(value)
}
}
型が責任を持って値を作る
型がリテラルを引き受ける
受け入れ表明で使うプロトコル
型がリテラルを引き受ける
▶ 整数リテラル
▶ 小数点数リテラル
▶ 真偽値リテラル
▶ 文字列リテラル
▶ nil リテラル
▶ 配列リテラル
▶ 辞書リテラル
… IntegerLiteralConvertible
… FloatLiteralConvertible
… BooleanLiteralConvertible
… StringLiteralConvertible
… NilLiteralConvertible
… ArrayLiteralConvertible
… DictionaryLiteralConvertible
定義
protocol IntegerLiteralConvertible {
typealias IntegerLiteralType
init(integerLiteral value: IntegerLiteralType)
}
整数リテラルを受け取るときに使うイニシャライザーが
規定されています。これに準拠した型は整数リテラルを
受け入れられる型になります。
【補足】IntegerLiteralConvertible
定義
protocol StringLiteralConvertible : ExtendedGraphemeClusterLiteralConvertible {
typealias StringLiteralType
init(stringLiteral value: StringLiteralType)
}
protocol ExtendedGraphemeClusterLiteralConvertible : UnicodeScalarLiteralConvertible {
typealias ExtendedGraphemeClusterLiteralType
init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType)
}
protocol UnicodeScalarLiteralConvertible {
typealias UnicodeScalarLiteralType
init(unicodeScalarLiteral value: UnicodeScalarLiteralType)
}
文字列リテラルを受け取るときに使うイニシャライザーが
規定されています。複数のプロトコルを継承しています。
init(stringLiteral:) 以外の使われ方を教えてください !
【補足】StringLiteralConvertible
リテラルと型の関係
▶ 型がリテラルを引き受ける
▶ リテラル自体に型はない
おさらい
リテラルと型の関係
// リテラルは、いろんな型に染まる
let value: Int = 10
let value: UInt64 = 10
let value: Double = 10
let value: NSNumber = 10
関係性から見えてくること
リテラルと型の関係
nil は Optional 型?Q.
Optional 型が nil を空として扱うA.
関係性から読めてくること
リテラルと型の関係
true は Bool型?Q.
Bool型が true を真として扱うA.
NSNumber型が真と扱っても良いA.
▶ リテラルをどう扱うかは型の責任
▶ リテラルの意味を尊重することは重要
// 整数リテラルを 32 bit 整数 として扱う
let number: Int32 = 100
// nil リテラルを 何もない として扱う
let value: String? = nil
// 配列リテラルを オプションセット として扱う
let options: UIViewAutoresizing
= [.FlexibleWidth, .FlexibleHeight]
リテラルの扱いは型の裁量で決まる
リテラルと型の関係
整数リテラルは Int 型?Q.
たとえば …
リテラルから受け取る値
型の内容がUInt64で表現されるとき
リテラルがInt型だと表現しきれない
▶ 型の内容が UInt64 で表現されるとき
▶ リテラルが Int 型では表現しきれない
struct UserID : IntegerLiteralConvertible {
var value: UInt64
init(integerLiteral value: Int) {
self.value = UInt64(value)
}
}
リテラルを 64 bit 符号なし整数で扱いたい
リテラルから受け取る値
リテラルには型がない💡
▶ リテラルは任意の型で受け取れる
▶ ただし、互換性のあるものに限る
struct UserID : IntegerLiteralConvertible {
var value: UInt64
init(integerLiteral value: UInt64) {
self.value = value
}
}
リテラルを 64 bit 符号なし整数で受け取る
リテラルから受け取る値
▶ 小さい型でも受け取れる
▶ 範囲を超えると ビルドタイム でエラー
struct Word : IntegerLiteralConvertible {
init(integerLiteral value: UInt8) { … }
}
let word1: Word = 255
let word2: Word = 300
リテラルの値の範囲を絞れる
リテラル変換で受け取る値
Integer literal '300' overflows when stored into 'UInt8'
定義
struct MyIntegerLiteral : _BuiltinIntegerLiteralConvertible {
var value: Int8
init(_builtinIntegerLiteral value: _MaxBuiltinIntegerType) {
self.value = Int8(_builtinIntegerLiteral: value)
}
}
使用
struct MyStruct : IntegerLiteralConvertible {
init(integerLiteral value: MyIntegerLiteral) {
}
}
このようにするとリテラルの値を自作の型で受け取れます。
ただし、ビルド時のオーバーフロー検出は行われません。
【余談】IntegerLiteralType の互換性
リテラルの動きを捉える
演習
リテラルから値を生成する
1/5
▶ リテラルに型を指定して値を作る
▶ 変換イニシャライザーが呼び出される
enum MyVariant : IntegerLiteralConvertible {
}
// A. 型を明記した変数にリテラルを入れる方法
let value: MyVariant = 200
// B. リテラルに型を明記する方法
let value = 200 as MyVariant
リテラルから値を生成する
リテラルの動きを捉える
型
リテラルから値を生成する
リテラル
型を明示
変換イニシャライザー
値
リテラルの動きを捉える
型を複数のリテラルに対応する
2/5
▶ 複数のリテラルコンバーティブルに準拠
▶ それぞれのリテラルを受容可能になる
// 型が複数のリテラルを受け入れるときに
enum MyVariant : IntegerLiteralConvertible,
FloatLiteralConvertible {
}
// 対応するどのリテラルからも生成可能
let value1: MyVariant = 200
let value2: MyVariant = 150.8
型を複数のリテラルに対応する
リテラルの動きを捉える
型
型を複数のリテラルに対応する
リテラルの動きを捉える
整数
リテラル
型を明示
整数用の変換イニシャライザー
値
小数点数用の変換イニシャライザー
値をリテラルと比較する
3/5
▶ リテラルと直接的に比較できる
▶ 型が比較可能なことが条件
enum MyVariant
: IntegerLiteralConvertible, Equatable {
}
let value: MyVariant = 200
// リテラルと直接的に比較可能
if value == 300 {
}
値をリテラルと比較する
リテラルの動きを捉える
値をリテラルと比較する
リテラルの動きを捉える
リテラル==値
同じ型での比較原則
値
型
変換イニシャライザー
型を推論
関数の引数にリテラルで渡す
4/5
▶ リテラルを直接引数に渡せる
▶ 目的の型の値へ暗黙的に変換される
// 型を引数で受け取る関数に
func calculate(value: MyVariant) {
}
// 対応するリテラルを直接的に渡せる
calculate(120)
関数の引数にリテラルで渡す
リテラルの動きを捉える
関数の引数にリテラルで渡す
リテラルの動きを捉える
リテラル
値
関数(value:型)
型
変換イニシャライザー
型を推論
列挙型のRaw値で自作の型を使う
5/5
▶ リテラル対応の型を Raw 値に使える
▶ 使えるリテラルは整数、小数、文字列のみ
// 列挙子の値はリテラルで指定する
enum Coefficient : MyVariant {
case Treble = 3
case Halve = 0.5
}
// Raw 値を MyVariant 型で取得できる
Coefficient.Treble.rawValue
列挙型のRaw値で自作の型を使う
リテラルの動きを捉える
列挙型のRaw値で自作の型を使う
リテラルの動きを捉える
Raw 値
列挙型
Raw 型
変換イニシャライザー
列挙子A
Raw 型
リテラル
列挙子B リテラル
rawValue
【補足】列挙型の Raw値で使えるリテラル
▶ 整数リテラル
▶ 小数点数リテラル
▶ 文字列リテラル
複数種類のリテラルを受け入れられる型を Raw 型に指定すると
Raw 値に複数のリテラルを混ぜて指定できるようになります。
隠しリテラル ?
おまけ
カラーリテラル
Color Literal
import UIKit
let color: UIColor
= [#Color(colorLiteralRed: 0.6587,
green: 1.0000,
blue: 0.6987,
alpha: 1.0000)#]
概要
カラーリテラル
[#Color(colorLiteralRed: R, green: G,
blue: B, alpha: A)#]
protocol _ColorLiteralConvertible {
init(colorLiteralRed: Float,
green: Float,
blue: Float,
alpha: Float)
}
Literal Convertible
カラーリテラル
extension NSColor : _ColorLiteralConvertible {
}
extension UIColor : _ColorLiteralConvertible {
}
Playground で使う
カラーリテラル
1. コード行に [#Color#] と書く
2. インラインに 箱  が描かれる
3. 箱をダブルクリックして
カラーピッカー で選べる
Playground
Playground での使用例
カラーリテラル
Playground
カラーパレットからの入力も可能
カラーリテラル
Playground
カーソル行へのドロップで入力
カラーパレットは Edit メニューから表示
カラーリテラル
Playground
画像リテラル
Image Literal
import UIKit
let image: UIImage
= [#Image(imageLiteral: "Swift.png")#]
概要
画像リテラル
[#Image(imageLiteral: PATH)#]
protocol _ImageLiteralConvertible {
init(imageLiteral: String)
}
Literal Convertible
画像リテラル
extension NSImage : _ImageLiteralConvertible {
}
extension UIImage : _ImageLiteralConvertible {
}
Playground で使う
画像リテラル
A. コード行に直接書く
[#Image(imageLiteral: "Swift.png")#]
Playground
OR
B. コードに画像を直接ドロップする
Playground での使用例
画像リテラル
Playground
ファイルリテラル
File Reference Literal
import Foundation
let path: NSURL = [#FileReference(
fileReferenceLiteral: "main.mm")#]
概要
ファイルリテラル
[#FileReference(fileReferenceLiteral:
PATH)#]
protocol _FileReferenceLiteralConvertible {
init(fileReferenceLiteral: String)
}
Literal Convertible
ファイルリテラル
extension NSURL
: _FileReferenceLiteralConvertible {
}
Playground で使う
ファイルリテラル
A. コード行に直接書く
[#FileReference(fileReferenceLiteral: "main.mm")#]
Playground
OR
B. コードにファイルを直接ドロップする
Playground での使用例
ファイルリテラル
Playground
型とリテラルの話
以上
まとめ
リテラルと型の話
1. リテラルを書く・リテラルを使う
2. リテラルの大事なところ
リテラルに型はない
リテラルを型に嵌める
リテラルの既定の型
3. リテラルを型に嵌める仕組み
型がリテラルを受け入れる
リテラルと型の関係
4. リテラルの動きを捉える
5. 隠しリテラル?

More Related Content

What's hot

Rustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミングRustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミング
yoshrc
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
Yusuke Suzuki
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
Takanori Sejima
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
 
Raft
RaftRaft
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
 
SQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルSQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイル
Itabashi Masayuki
 
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
Heungsub Lee
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 

What's hot (20)

Rustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミングRustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミング
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
Raft
RaftRaft
Raft
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
 
SQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルSQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイル
 
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 

Viewers also liked

リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
Tomohiro Kumagai
 
Swift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftSwift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swift
Tomohiro Kumagai
 
Swift チャチャチャ #love_swift
Swift チャチャチャ #love_swiftSwift チャチャチャ #love_swift
Swift チャチャチャ #love_swift
Tomohiro Kumagai
 
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswiftSwift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Tomohiro Kumagai
 
favyのiOSアプリ開発
favyのiOSアプリ開発favyのiOSアプリ開発
favyのiOSアプリ開発
Takashi Matsumoto
 
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
Tomohiro Kumagai
 
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
Yuka Masaki
 
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__
Tomohiro Kumagai
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
Fumiya Sakai
 
Container View Controllerを正しく使おう
Container View Controllerを正しく使おうContainer View Controllerを正しく使おう
Container View Controllerを正しく使おう
asakahara
 
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
Tomohiro Kumagai
 
Guiding principles for
Guiding principles forGuiding principles for
Guiding principles for
Beberly Fabayos
 
Trabajo colaborativo list
Trabajo colaborativo listTrabajo colaborativo list
Trabajo colaborativo list
Katerin Colcha
 
SharePoint Fest Denver - Is Your SharePoint Really Healthy?
SharePoint Fest Denver - Is Your SharePoint Really Healthy?SharePoint Fest Denver - Is Your SharePoint Really Healthy?
SharePoint Fest Denver - Is Your SharePoint Really Healthy?Richard Harbridge
 
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēmaValsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Pārresoru kordinācijas centrs (PKC)
 
Open Educational Resources: Policy Implications
Open Educational Resources: Policy ImplicationsOpen Educational Resources: Policy Implications
Open Educational Resources: Policy Implications
Oystein Johannessen
 
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
Statistisk sentralbyrå
 
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
Eli Hurvitz
 
Nebosh Oil and Gas opearational safety certificate (2)
Nebosh Oil and Gas opearational safety certificate (2)Nebosh Oil and Gas opearational safety certificate (2)
Nebosh Oil and Gas opearational safety certificate (2)Gulf Test Safety Consultancies
 

Viewers also liked (20)

リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
 
Swift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftSwift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swift
 
Swift チャチャチャ #love_swift
Swift チャチャチャ #love_swiftSwift チャチャチャ #love_swift
Swift チャチャチャ #love_swift
 
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswiftSwift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
 
favyのiOSアプリ開発
favyのiOSアプリ開発favyのiOSアプリ開発
favyのiOSアプリ開発
 
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
 
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
ネイルブック開発チームの新たなる挑戦〜新アプリ開発秘話〜
 
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
 
Container View Controllerを正しく使おう
Container View Controllerを正しく使おうContainer View Controllerを正しく使おう
Container View Controllerを正しく使おう
 
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 5th #minna_de_swift
 
Guiding principles for
Guiding principles forGuiding principles for
Guiding principles for
 
Trabajo colaborativo list
Trabajo colaborativo listTrabajo colaborativo list
Trabajo colaborativo list
 
SharePoint Fest Denver - Is Your SharePoint Really Healthy?
SharePoint Fest Denver - Is Your SharePoint Really Healthy?SharePoint Fest Denver - Is Your SharePoint Really Healthy?
SharePoint Fest Denver - Is Your SharePoint Really Healthy?
 
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēmaValsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
Valsts pārvaldes institūciju pasūtīto pētījumu koordinācijas sistēma
 
Open Educational Resources: Policy Implications
Open Educational Resources: Policy ImplicationsOpen Educational Resources: Policy Implications
Open Educational Resources: Policy Implications
 
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
SSBs Erling Holmøy_Norge eldes: Langsiktig økonomisk bærekraft 28.01.14
 
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
 
Retallos 2008
Retallos 2008Retallos 2008
Retallos 2008
 
Nebosh Oil and Gas opearational safety certificate (2)
Nebosh Oil and Gas opearational safety certificate (2)Nebosh Oil and Gas opearational safety certificate (2)
Nebosh Oil and Gas opearational safety certificate (2)
 

Similar to リテラルと型の話 #__swift__

Deep dive into oss written in swift
Deep dive into oss written in swiftDeep dive into oss written in swift
Deep dive into oss written in swift
Yuki Asai
 
Deep dive into oss written in swift
Deep dive into oss written in swiftDeep dive into oss written in swift
Deep dive into oss written in swiftYuki Asai
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Tomohiro Kumagai
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
 
Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8
明 高橋
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift
Tomohiro Kumagai
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
Yuto Takei
 
Swift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswiftSwift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswift
Tomohiro Kumagai
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
Hiramatsu Ryosuke
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
Tomohiro Kumagai
 
Refactoring point of Kotlin application
Refactoring point of Kotlin applicationRefactoring point of Kotlin application
Refactoring point of Kotlin application
Recruit Lifestyle Co., Ltd.
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
Kaz Aiso
 
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidevSwift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
Tomohiro Kumagai
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義JPCERT Coordination Center
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
Takashi Hoshino
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
Fujio Kojima
 
APIKit
APIKitAPIKit

Similar to リテラルと型の話 #__swift__ (20)

Deep dive into oss written in swift
Deep dive into oss written in swiftDeep dive into oss written in swift
Deep dive into oss written in swift
 
Deep dive into oss written in swift
Deep dive into oss written in swiftDeep dive into oss written in swift
Deep dive into oss written in swift
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
Swift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswiftSwift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswift
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Refactoring point of Kotlin application
Refactoring point of Kotlin applicationRefactoring point of Kotlin application
Refactoring point of Kotlin application
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
 
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidevSwift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
 
APIKit
APIKitAPIKit
APIKit
 

More from Tomohiro Kumagai

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
Tomohiro Kumagai
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
Tomohiro Kumagai
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
Tomohiro Kumagai
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
Tomohiro Kumagai
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
Tomohiro Kumagai
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
Tomohiro Kumagai
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
Tomohiro Kumagai
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
Tomohiro Kumagai
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
Tomohiro Kumagai
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
Tomohiro Kumagai
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
Tomohiro Kumagai
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
Tomohiro Kumagai
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
Tomohiro Kumagai
 

More from Tomohiro Kumagai (20)

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
 

リテラルと型の話 #__swift__