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
Goの字句解析を覗いてみる
Search
mm-masahiro
September 27, 2025
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goの字句解析を覗いてみる
mm-masahiro
September 27, 2025
Other Decks in Programming
See All in Programming
AIに “答え“を書かせるのを やめてみた
___akari11
0
130
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
Performance Optimization With LLMs
xleitix
0
170
phperだってパンチカードでコーディングしたい
o0h
PRO
0
370
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
450
Seven New Principles of Software Engineering
yegor256
0
150
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
590
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.6k
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
Why Our Code Smells
bkeepers
PRO
340
58k
Exploring anti-patterns in Rails
aemeredith
4
540
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Deep Space Network (abreviated)
tonyrice
0
380
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Transcript
Goの字句解析を覗いてみる 2025/9/27 株式会社Voicy 森永 雅大
© Voicy, Inc. func hoge(foo …string) { ~~~ } コンパイル通ると思いますか?
func hoge(foo…string) { ~~~ } 空白なし ① ②
© Voicy, Inc. The Go Programming Language Specification go.dev/ref/spec
© Voicy, Inc. 字句解析とは?
© Voicy, Inc. 字句解析とは? • 文字の並びを解析して、ある言語にとって意味のある最小単位(トーク ン)に分割する仕組み ◦ 字句解析によって、文がトークンに分割される ex.)
var myName = "masahiro"
© Voicy, Inc. 字句解析とは? • 文字の並びを解析して、ある言語にとって意味のある最小単位(トーク ン)に分割する仕組み ◦ 字句解析によって、文がトークンに分割される ex.)
var myName = "masahiro" → var / myName / = / "masahiro"
© Voicy, Inc. Goの字句解析の仕様
© Voicy, Inc. 4つのトークンの種類 • Identifiers • Keywords • Operators
and punctuation • Literals Goの字句解析の仕様
© Voicy, Inc. Identifiers • 変数や関数名などの名前を表すトークン • 1つ以上の文字や数字から成る • 最初の1文字目(character)は、文字(letter)でないといけない
◦ _ は使える ex. 4種類のトークン func voicy() { voicy := "音声配信プラットフォーム " type hiringRole struct { engineer bool } エンジニアが発信しているチャンネル := "https://voicy.jp/channel/1305" }
© Voicy, Inc. Identifiers • 変数や関数名などの名前を表すトークン • 1つ以上の文字や数字から成る • 最初の1文字目(character)は、文字(letter)でないといけない
ex. 4種類のトークン func voicy() { voicy := "音声配信プラットフォーム " type hiringRole struct { engineer bool } エンジニアが発信しているチャンネル := "https://voicy.jp/channel/1305" }
© Voicy, Inc. 空白の扱い • 空白は通常は無視されるが、空白がないと複数あるべきトークンが、別の1つのトー クンとして扱われてしまう場合にはトークンの区切りとして扱われる 空白の扱い var x
= 1 var x=1
© Voicy, Inc. 最長一致のルール 最長一致のルール • 意味のある単位として取れる限り最長の文字列をトークンとして扱う a + 10
a++
© Voicy, Inc. コンパイル通ると思いますか? func hoge(foo …string) { ~~~ }
func hoge(foo…string) { ~~~ } 空白なし ① ②
© Voicy, Inc. コンパイル通ると思いますか? func hoge(foo …string) { ~~~ }
func hoge(foo…string) { ~~~ } 空白なし ① ②
© Voicy, Inc. func hoge(foo…string) {} コンパイル通ると思いますか? 空白あっても なくてもOK!!
音声×テクノロジーでワクワクする社会をつくる