Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
わいわいOperator
Search
giginet
PRO
September 12, 2018
Programming
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
わいわいOperator
https://iosdiscord.connpass.com/event/97606/
giginet
PRO
September 12, 2018
More Decks by giginet
See All by giginet
🀄️ on swiftc
giginet
PRO
0
580
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
450
Claude Codeログ基盤の構築
giginet
PRO
7
4.6k
Inside of Swift Export
giginet
PRO
1
3.5k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.9k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
480
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.6k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
8.5k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.9k
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
460
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
760
What We Talk About When We Talk About XP
m_seki
2
440
フロントエンドUIフレームワークのこれまでとこれから
ssssota
2
1.3k
Intent as Code
shoppingjaws
4
620
スマート反転とウェブアクセシビリティ
camiha
0
170
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
110
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
130
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
470
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Bash Introduction
62gerente
615
220k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
BBQ
matthewcrist
89
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
So, you think you're a good person
axbom
PRO
2
2.1k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Leo the Paperboy
mayatellez
8
2.3k
The Curse of the Amulet
leimatthew05
2
14k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
We Are The Robots
honzajavorek
0
350
My Coaching Mixtape
mlcsv
0
310
Transcript
Θ͍Θ͍Operator Θ͍Θ͍swiftc #5 @giginet
iOSDCͷLT !
• Protocol Extension͔ΒᤈࢠΛੜ͢Έ͍ͨͳωλΛͬͨ
͜Εpostfix operatorͰͰ͖ͳ͍ͷʁ !
import Foundation import Peafowl postfix operator ᤈ extension Int {
postfix static func ᤈ(lhs: Int) -> Tile { return Tile(.character(lhs))! } } 1ᤈ
None
ແཧͦ͏
ύʔαʔΛಡΉ • https://github.com/apple/swift/blob/master/include/swift/AST/ Identifier.h#L94
/// isOperatorStartCodePoint - Return true if the specified code point
is a /// valid start of an operator. static bool isOperatorStartCodePoint(uint32_t C) { // ASCII operator chars. static const char OpChars[] = "/=-+*%<>!&|^~.?"; if (C < 0x80) return memchr(OpChars, C, sizeof(OpChars) - 1) != 0; // Unicode math, symbol, arrow, dingbat, and line/box drawing chars. return (C >= 0x00A1 && C <= 0x00A7) || C == 0x00A9 || C == 0x00AB || C == 0x00AC || C == 0x00AE || C == 0x00B0 || C == 0x00B1 || C == 0x00B6 || C == 0x00BB || C == 0x00BF || C == 0x00D7 || C == 0x00F7 || C == 0x2016 || C == 0x2017 || (C >= 0x2020 && C <= 0x2027) || (C >= 0x2030 && C <= 0x203E) || (C >= 0x2041 && C <= 0x2053) || (C >= 0x2055 && C <= 0x205E) || (C >= 0x2190 && C <= 0x23FF) || (C >= 0x2500 && C <= 0x2775) || (C >= 0x2794 && C <= 0x2BFF) || (C >= 0x2E00 && C <= 0x2E7F) || (C >= 0x3001 && C <= 0x3003) || (C >= 0x3008 && C <= 0x3030); }
None
·ͱΊ • operatorͰ͑Δจࣈίʔυܾ·ͬͯΔ • ϙϯυoperatorʹͰ͖Δ͕ɺϢʔϩoperatorʹͰ͖ͳ͍ • ଞʹ͋Δ͔
ΦϚέ • ࣮ṛશͯUnicodeʹׂΓͯΒΕ͍ͯΔ • ͜ΕΦϖϨʔλʔʹͰ͖ͳ͍ʁ
ແཧͩͬͨ
ΦϚέ2 • ṛΛఆ͢ΔCharacterSetͰ͢ import Foundation public let MahjongTileCharacterSet = {
() -> CharacterSet in let start = Character("").unicodeScalars.first! let end = Character("").unicodeScalars.first! let range: ClosedRange<Unicode.Scalar> = start...end return CharacterSet(charactersIn: range) }()