SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
EZ-NET 熊⾕友宏
http://ez-net.jp/
2016.01.20
@ 集まれ Swift 好き!Swift 愛好会 #3
String Interpolation
リテラルと型の続きの話
Swift 2.1.1
謹賀新年
2016.01
本年も素敵な年になりますよう
⼼よりお祈り申し上げます
熊谷友宏
横浜 iPhone 開発者勉強会
#yidev
わいわい・ゆるく、iPhone 開発者の

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

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

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

有料会員制の勉強会
紙版は絶版、電子書籍は販売中
Xcode 7 でも役立つはず 法人会員も多数
@es_kumagai
EZ-NET http://ez-net.jp/
書籍 / 登壇
熊谷友宏
@es_kumagai
EZ-NET http://ez-net.jp/
CodePiece
iOS, OS X, Apple Watch アプリ
ソースコードを Twitter と
Gist に同時投稿できる。
いつもの電卓
計算式も見える電卓アプリ。
watchOS 1 対応
音で再配達ゴッド
簡単操作で
再配達の申し込み。
EZ-NET IP Phone
iPhone でひかり電話を使う。
自宅 LAN からの利用専用
CodePiece for OS X
勉強会を楽しむアプリ
ソースコードを Twitter と Gist に同時投稿できる

勉強会で知見をみんなと共有したい時とかに便利!
できること
#__swift__
リテラルと型の
続きの話
前回のあらすじ
@ 集まれ Swift 好き!Swift 愛好会 #2
▶ コードで値を書くのに使う
▶ 具体的な内容を記述する
"Swift"
2.1
前回のあらすじ
リテラルとは
1. リテラルに型はない
2. 型がリテラルを引き受ける
前回のあらすじ
要点
リテラルに型はないQ.
リテラルはいろんな型に染まるA.
前回のあらすじ
要点 (1/2)
let value: Int = 10
let value: UInt64 = 10
let value: Double = 10
let value: NSNumber = 10
struct MyValue : IntegerLiteralConvertible {
init(integerLiteral value: Int) {
}
}
型がリテラルを引き受けるQ.
Literal Convertible プロトコルA.
前回のあらすじ
要点 (2/2)
▶ 整数リテラル
▶ 小数点数リテラル
▶ 真偽値リテラル
▶ 文字列リテラル
▶ nil リテラル
▶ 配列リテラル
▶ 辞書リテラル
… 3
… 3.1
… true, false
… "STRING"
… nil
… [ value, ... ]
… [ key : value, ... ]
リテラルの種類
前回のあらすじ
リテラルと型の関係性
前回のあらすじ
true は Bool型?Q.
Bool型が true を真として扱うA.
NSNumber 型も真として扱うA.
let value: Bool = true
let value: NSNumber = true
着目したいところ
文字列リテラル
"Swift"
▶ 引用符で括って文字列を表現
▶ 特別な文字も挿入可能
"Swift" // Swift
""Swift"" // "Swift"
"Header:tText" // Header: Text
"!u{20DD}" // ! ⃝
概要
文字列リテラル
こんな書き方もできる
"Swift (version)"
let version = 2.1
let text = "Swift (version)"
print(text)
"Swift (version)" と書くと?Q.
変数が実際の値に差し替えられるA.
文字列リテラル
値を挿入できる文字列表現
Swift 2.1
違和感
1. リテラルに型はない…?
2. 型がリテラルを引き受ける…?
文字列リテラル
リテラルに値を挿入できる?
let text: String = "Swift (version)"
リテラルに
型が混ざる?
具体的な
値じゃない…
結果を返す
関数みたい…
埋め込みなんて
想定してた…?
本当に型が

受け入れてる?
リテラル自身が
埋め込むの?
リテラル自身が
振る舞えるの?
能動的に動けすぎ…?
本当にリテラルなのか?Q.
試してみるしかないでしょう!A.
文字列リテラル
値を挿入できる文字列表現
1. リテラルを受け入れる型を作って、
2. 代入する。
値を挿入した文字列
リテラルなのか確かめてみる
struct MyValue:StringLiteralConvertible {
}
let version = 2.1
let value: MyValue = "Swift (version)"
Cannot convert value of type 'String' to specified type 'MyValue'
( ̄▽ ̄)
String Interpolation
文字列補間構文
Swift uses string interpolation to include the name of a
constant or variable as a placeholder in a longer string, and
to prompt Swift to replace it with the current value of that
constant or variable. Wrap the name in parentheses and
escape it with a backslash before the opening parenthesis:
The Swift Programming Language
println("The current value of
friendlyWelcome is (friendlyWelcome)")
▶ 文字列の中に値を埋め込む仕組み
▶ (value) という書式で埋め込む
// value の値は "Swift 2.1" になる
let version = 2.1
let value = "Swift (version)"
要点
String Interpolation
▶ 計算式も埋め込み可能
▶ メソッド実行や末尾クロージャー使用も可能
"(values)"
"(values.count)"
"(values.contains("2"))"
"(values.map { $0 * 2 } .reduce(0, combine: +))"
自由度の高い書式
String Interpolation
プロトコルも存在
String Interpolation を想定した
▶ 型が String Interpolationを

受け入れることを表明するプロトコル
▶ 複雑な書式をパーツ毎に分解して変換する
protocol StringInterpolationConvertible {
init(stringInterpolation strings: Self...)
init<T>(stringInterpolationSegment expr: T)
}
StringInterpolationConvertible
プロトコル
1. init<T>(stringInterpolationSegment: T)
2. init(stringInterpolation: Self...)
StringInterpolationConvertible
必須の実装
String Interpolation の各パーツを

順に受け取って自身の型に変換する
各パーツを変換した値の配列から

最終的な値を組み立てる
変換の流れ
StringInterpolationConvertible
"Language_(lang)_Version_(ver)"
型
"Language_" """_Version_" verlang
値 値 値 値 値
Array<型>
値
init(stringInterpolation:)
init<T>(stringInterpolationSegment:)
変換処理はオーバーロード可能
StringInterpolationConvertible
値 値 値 値 値
Array<型>
init(stringInterpolationSegment:String)
init<T:LanguageType>(stringInterpolationSegment:T)
init<T:Any>(stringInterpolationSegment:T)
"Language_" """_Version_" verlang
String Interpolation 対応
自作の型を対応させる
目標
1. 型をString Interpolationに対応
2. 整数値は3桁区切りの文字列で表現
3. 整数値以外は文字列で表現
4. 各パーツをまとめて完成
String Interpolation 対応
▶ 型でString Interpolationの受け入れを表明
▶ StringInterpolationConvertibleを適用
struct FormattedString : StringInterpolationConvertible {
// このプロパティで文字列を表現
var value: String
型をString Interpolationに対応
String Interpolation 対応 (1/4)
▶ 整数型の値を変換する処理
▶ 自身の型で3桁区切りの文字列を表現
struct FormattedString : StringInterpolationConvertible {
// 整数型を受け取った場合は、3桁区切りの文字列にする
init<T:IntegerType>(stringInterpolationSegment expr:T) {
let value = NSNumber(longLong: expr.toIntMax())!
let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
self.value = formatter.stringFromNumber(value)
整数値は3桁区切りの文字列で表現
String Interpolation 対応 (2/4)
▶ 整数型以外の値を変換する処理
▶ 自身の型に そのまま文字列で表現
struct FormattedString : StringInterpolationConvertible {
// 整数型以外を受け取った場合は、そのまま文字列にする
init<T>(stringInterpolationSegment expr: T) {
self.value = String(expr)
}
整数値以外は文字列で表現
String Interpolation 対応 (3/4)
▶ 最後に変換済みの全パーツを取得
▶ それらを使って自身の型を再構築
struct FormattedString : StringInterpolationConvertible {
// 変換済みの全てのパーツを文字列として連結して、完成
init(stringInterpolation strings: FormattedString...) {
self.value = strings.reduce("") { $0 + $1.value }
}
各パーツをまとめて完成
String Interpolation 対応 (4/4)
完成
▶ String Interpolationを記載
▶ それが自作型であることを明記
let version = 2000
let string: FormattedString = "Windows (version)"
完成した型を使う
String Interpolation 対応
// 実行結果
Windows 2,000
print(string.value)
おしまい
リテラルと型の続きの話
まとめ
リテラルと型の続きの話
1. 前回のあらすじ
リテラルとは
リテラルに型はない
型がリテラルを引き受ける
2. 着目したいところ
文字列に値を挿入できる
これって本当にリテラル?
3. String Interpolation(文字列補間構文)
文字列に値を挿入できる表現
自作の型を 文字列補間構文 に対応させる

Contenu connexe

Tendances

OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
irix_jp
 
Pattern match with case class
Pattern match with case classPattern match with case class
Pattern match with case class
Kai Sasaki
 
Shibuya trac8
Shibuya trac8Shibuya trac8
Shibuya trac8
riskrisk
 
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
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
 

Tendances (20)

Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidevSwift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
 
Swift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswiftSwift を振り返ってみよう #cswift
Swift を振り返ってみよう #cswift
 
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
 
NSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansaiNSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansai
 
Swift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswiftSwift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswift
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
 
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウムSwift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPS
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
 
Pattern match with case class
Pattern match with case classPattern match with case class
Pattern match with case class
 
Perlでちょいモテデザインパターン
PerlでちょいモテデザインパターンPerlでちょいモテデザインパターン
Perlでちょいモテデザインパターン
 
Shibuya trac8
Shibuya trac8Shibuya trac8
Shibuya trac8
 
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
 
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみたjvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
 
Web Workerで○○する話
Web Workerで○○する話Web Workerで○○する話
Web Workerで○○する話
 
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよSerf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
 
Pb tween
Pb tweenPb tween
Pb tween
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 

En vedette

En vedette (20)

Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめCore dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
 
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
 
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
 
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
 
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニックOSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック
 
はじめて Phantom と遭遇して、闇雲に闘いを挑んでみた話 #kbkz_tech
はじめて Phantom と遭遇して、闇雲に闘いを挑んでみた話 #kbkz_techはじめて Phantom と遭遇して、闇雲に闘いを挑んでみた話 #kbkz_tech
はじめて Phantom と遭遇して、闇雲に闘いを挑んでみた話 #kbkz_tech
 
技術者の働き方/ リモートワークという働き方 powered byドメイン駆動設計
技術者の働き方/ リモートワークという働き方 powered byドメイン駆動設計技術者の働き方/ リモートワークという働き方 powered byドメイン駆動設計
技術者の働き方/ リモートワークという働き方 powered byドメイン駆動設計
 
Phantom Type in Scala
Phantom Type in ScalaPhantom Type in Scala
Phantom Type in Scala
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
 
Swift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swiftSwift の3大プロトコルを眺めてみる #love_swift
Swift の3大プロトコルを眺めてみる #love_swift
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
Swift チャチャチャ #love_swift
Swift チャチャチャ #love_swiftSwift チャチャチャ #love_swift
Swift チャチャチャ #love_swift
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_ux
 
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
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswiftSwift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
 
女子の心をつかむUIデザインポイント - MERY編 -
女子の心をつかむUIデザインポイント - MERY編 -女子の心をつかむUIデザインポイント - MERY編 -
女子の心をつかむUIデザインポイント - MERY編 -
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 

Similaire à リテラルと型の続きの話 #__swift__

197x Timer with Your Messages
197x Timer with Your Messages197x Timer with Your Messages
197x Timer with Your Messages
Kuniaki Igarashi
 

Similaire à リテラルと型の続きの話 #__swift__ (20)

Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Study Swift
Study Swift Study Swift
Study Swift
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
2014年からSwiftを振り返る! #cswift
2014年からSwiftを振り返る! #cswift2014年からSwiftを振り返る! #cswift
2014年からSwiftを振り返る! #cswift
 
Swiftってどうよ!!(cocoa勉強会関西@20150228)
Swiftってどうよ!!(cocoa勉強会関西@20150228)Swiftってどうよ!!(cocoa勉強会関西@20150228)
Swiftってどうよ!!(cocoa勉強会関西@20150228)
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
 
Erlangご紹介 websocket編
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swift
 
197x Timer with Your Messages
197x Timer with Your Messages197x Timer with Your Messages
197x Timer with Your Messages
 
鈴木:Net commonsでの中国語使用について
鈴木:Net commonsでの中国語使用について鈴木:Net commonsでの中国語使用について
鈴木:Net commonsでの中国語使用について
 
鈴木:Net commonsでの中国語使用について
鈴木:Net commonsでの中国語使用について鈴木:Net commonsでの中国語使用について
鈴木:Net commonsでの中国語使用について
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 

Plus de Tomohiro Kumagai

Plus de 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__