Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GoのUnderlying typeについて
Search
matumoto
November 04, 2023
Technology
0
120
GoのUnderlying typeについて
2023/11/04 に行われた会津大学 学祭LTの資料です
イベントページはこちら
https://zli.connpass.com/event/298894/
matumoto
November 04, 2023
Tweet
Share
More Decks by matumoto
See All by matumoto
Goトランザクション処理
matumoto
0
16
いまいちどスライスの 挙動を見直してみる
matumoto
0
230
Go1.22のリリース予定の機能を見る
matumoto
0
51
Typed-nilについて
matumoto
0
140
GoのType Setsという概念
matumoto
0
11
GoのRateLimit処理の実装
matumoto
0
150
Webプッシュ通知触ってみた
matumoto
0
27
拡張ユークリッドの互除法の紹介
matumoto
0
100
Goでの楕円曲線暗号の実装
matumoto
0
29
Other Decks in Technology
See All in Technology
TypeScript x Raycast x AIで変える開発者体験
nagauta
0
170
【shownet.conf_】クロージングセッション
shownet
PRO
0
290
業務ヒアリングと知識の呪い
tamai_63
0
260
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
1.3k
【shownet.conf_】トポロジ図の歩き方
shownet
PRO
0
480
【shownet.conf_】ローカル5Gを活用したウォーキングツアーの体感向上
shownet
PRO
0
320
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
1
280
ガバメントクラウド開発と変化と成長する組織 / Organizational change and growth in developing a government cloud
kazeburo
4
730
成果のためのコミュニケーション - 語彙を育てよう -/communication-for-good-outcome-developing-vocabulary
hassaku63
4
160
PREEMPT_RT over the years
ennael
PRO
0
350
Azure Verified Moduleを触って分かった注目ポイント/azure-verified-module-begin
mhrtech
1
350
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
2
320
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Being A Developer After 40
akosma
84
590k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Optimizing for Happiness
mojombo
375
69k
Why Our Code Smells
bkeepers
PRO
334
57k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
7
570
How to Ace a Technical Interview
jacobian
275
23k
Web development in the modern age
philhawksworth
205
10k
Happy Clients
brianwarren
97
6.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Transcript
GoのUnderlying typeとは? どんなもの?なに? 彼女はいるの?調べてみました! 2023/11/04 学祭LT matumoto
• 学年:28期 • 趣味: ◦ マイクラ ◦ PokemonSleep ◦ VTuber
▪ 叶 ▪ やしきず • Twitter:@matumoto_1234 • ひとこと:マイクラに生活を破壊された matumoto 松本 響輝 自己紹介
Goの文法おさらい
Goの型エイリアス • type B = A でAを元にエイリアスを宣言できる
Goの型定義 • type B A でAを元に型を定義できる
型定義した型へのメソッド
関数とジェネリクス • 関数に型パラメータを取らせることができる
ジェネリクスの型制約 • 型パラメータに対して、型制約をかけることができる • 下のPrint関数の型引数にはintかstringしか渡せない
型制約のapproximation element • ~Tという文法で型Tを元にした型として、型制約の要素に使える
型制約のapproximation element • MyIntなどintを元にした型を渡すことができる
本題
Underlying typeとは? • 代入可能性やジェネリクスにおいての重要な概念 • すべての型はunderlying typeをちょうど一つ持つ
underlying の意味 •
例 • MyIntのunderlying typeはint
例 • intのunderlying typeはint
4つのルールによって決まる
クイズ
クイズ • MyMyStringのunderlying typeは?
正解 • 型定義はunderlying typeを共有するので、正解はstring
クイズ • struct{ x int }のunderlying typeは?
正解 • 型リテラルのunderlying typeはそれ自身
クイズ • MyIntsのunderlying typeは?
正解 • 型宣言はunderlying typeを共有するので、MyIntsのunderlying typeは[]MyIntの underlying type • 型リテラル[]MyIntのunderlying typeはそれ自身
• よって、MyIntsのunderlying typeは[]MyInt
いかがでしたか??? ありがとうございました