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
Golang Beginners!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yukpiz
October 23, 2018
Technology
0
120
Golang Beginners!
Okinawa.go #10の資料です!
yukpiz
October 23, 2018
Tweet
Share
More Decks by yukpiz
See All by yukpiz
Go x AWSによるシンプルなサーバーレス実装
yukpiz
1
580
Go x AWSによるシンプルなサーバーレス実装
yukpiz
1
120
Go言語と事例で学ぶAWS Lambda
yukpiz
3
1.1k
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
管理者向けGitHub Enterpriseの運用Tips紹介: 人にもAIにも優しいプラットフォームづくり
yuriemori
0
170
マネージャー版 "提案のレベル" を上げる
konifar
21
14k
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
3.9k
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.4k
AIファーストを前提とした開発スタイルの変化
sbtechnight
0
170
AIエージェント・エコノミーの幕開け 〜 オープンプロトコルが変えるビジネスの未来 〜
shukob
0
110
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
1
220
OpenClawで回す組織運営
jacopen
3
630
モブプログラミング再入門 ー 基本から見直す、AI時代のチーム開発の選択肢 ー / A Re-introduction of Mob Programming
takaking22
5
770
非情報系研究者へ送る Transformer入門
rishiyama
3
2k
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
370
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Practical Orchestrator
shlominoach
191
11k
Navigating Weather and Climate Data
rabernat
0
130
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Mind Mapping
helmedeiros
PRO
1
110
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
370
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
A Soul's Torment
seathinner
5
2.4k
A better future with KSS
kneath
240
18k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Transcript
Golang Beginners! Written by @yukpiz Oct 4, 2018 Lightning talks
party night! at Okinawa! Oct 23, 2018 Okinawa.go #10
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice //\\\\\\\\\\\ Pointer //\\\\\\\\\\\\ Closing
Tadaima 沖縄Go言語LT大会
Tadaima //\ 東京のスタートアップでGo言語 //\\\ Twitter @yukpiz(https://yukpiz.github.io) //\\\\\ #golang #AWS #Vim
#Fishing //\\\\\\\ エンジニアの登壇を応援する会 //\\\\\\\ GoCon 2018のCfPを考え中 //\\\\\\\\\ せっかくなので沖縄でイベント開催してみよう!
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice //\\\\\\\\\\\ Pointer //\\\\\\\\\\\\ Closing
What’s golang? mainパッケージだとコマンドライン実行可能 標準で言語に含まれるパッケージでも、 利用するときはimportする mainパッケージの場合、 実行時にmain関数が呼び出される
What’s golang? //\ 2012年にリリース(現在v1.11、go2のドラフト発表) //\\\ コマンドラインツール、WebAPI、バッチ処理 //\\\\\ AWS Lambda、GAE/Go、Cloud Function(Coming
soon!) //\\\\\\\ 静的型付け言語、並列実行に強い、シンプルな構文 //\\\\\\\\\ クローラー、メッセージ一斉配信、WebAPI
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice //\\\\\\\\\\\ Pointer //\\\\\\\\\\\\ Closing
Let’s hands-on! //\ 9月に東京で初心者向けのハンズオンをやった //\\\ 言語仕様から頑張って勉強した //\\\\\ 言語仕様、わかってるつもりだったけど難しかった //\\\\\\\ 以下にハンズオン内容が公開されています!
スライド:https://techdo.connpass.com/event/100306/ 課題内容:https://qiita.com/yukpiz/items/384093ce65c56451bd97
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice(WARN) //\\\\\\\\\\\ Pointer(DANGER) //\\\\\\\\\\\\ Closing
Variables 1st //\ 基本的な変数の扱いを学ぶ //\\\ 知っておくと得する、変数についての豆知識を学ぶ
Variables 2nd 変数が宣言されると、ゼロ値で初期化される 宣言と初期化を明示的に行なえる :=でvarを省略できる 宣言済みの変数には代入ができる 未宣言の変数に代入はできない 再宣言はできない
Variables 3rd ここに入ると変数pはメモリ上に 確保されるが、使用されない 使用する直前で宣言しよう
Variables 4th //\ 宣言と代入の違いを理解しよう //\\\ 未使用変数を残して、コンパイルできない //\\\\\ 変数は宣言された位置でメモリが確保される //\\\\\\\ 変数宣言は使用する直前に書くように心がける
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice(WARN) //\\\\\\\\\\\ Pointer(DANGER) //\\\\\\\\\\\\ Closing
Array & Slice 1st //\ 基本的な配列とスライスの使い方を学ぶ //\\\ 配列とスライスの違いを理解する
Array & Slice 2nd 容量3のint型の配列 容量5のint型の配列 容量が違う配列は、 異なる型として扱われる 変数の種別は同じ配列
Array & Slice 3rd [0] 1 [1] 2 [2] 3
[3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 容量10のint配列(実体) 要素1~5番目までを 参照するスライス 実体の配列が変更される Length(長さ)はスライスの長さ5 Capacity(容量)は実体配列の容量10
Array & Slice 4th 容量を省略するとスライスになる スライスは可変長のように扱える 再スライスができる [0] 1 [1]
2 容量2のint配列(実体) [0] 1 [1] 2 [2] 3 [3] 4 容量4のint配列(実体) - 実体の配列に要素を2つ追加したい - 実体の配列は容量2なので足りない - 新しい配列が生成される - 新しい配列へのスライスが返される
Array & Slice 1st //\ 配列は固定長、スライスは可変長(のように振る舞う) //\\\ 配列は実体、スライスは配列の参照 //\\\\\ 暗黙的に配列の実体が再生成される場合がある
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice(WARN) //\\\\\\\\\\\ Pointer(DANGER) //\\\\\\\\\\\\ Closing
Pointer 1st //\ 基本的なポインタの扱いを学ぶ //\\\ パフォーマンスを意識したコードを書けるようになる
Pointer 2st Profile構造体のポインタ変数を宣言、初期化 ポインタ変数はメモリ番地を出力できる ”&”がついているのはポインタ変数 ”*”をつけてアクセスすると値が得られる ポインタ変数でもフィールドにアクセス可能
Pointer 3rd f1にポインタ変数を渡す f2に値を渡す Profile構造体のポインタ変数を 引数に取る関数 Profile構造体の値を 引数に取る関数
Pointer 4th //\ 値コピーを避ける為にポインタを利用する //\\\ ポインタ変数であってもフィールドにアクセスができる //\\\\\ 特に値コピーによる関数の引数でポインタを使う
Summaries!
You have a fun golang life! //\ APIやバッチ処理での活用事例が増えている言語 //\\\ パッケージ管理が標準導入されたり(v1.12)
//\\\\\ go2のドラフトデザインが発表されたり //\\\\\\\ Go言語の書けるエンジニア少ない
Agenda //\\\\\\ Tadaima //\\\\\\\ What’s golang? //\\\\\\\\ Let’s hands-on! //\\\\\\\\\
Variables //\\\\\\\\\\ Array & Slice //\\\\\\\\\\\ Pointer //\\\\\\\\\\\\ Closing
Closing? No!! Please join us! for After-Party:)
@yukpiz リピーターに長く愛される そんなお店づくりを支援したい * Marketing Support * Concierge Support *
Opening Support for Restaurants !! yukpiz We are hiring!
Thanks! func thanks() { fmt.Println(“Thank you for join & listening
”) os.Exit(0) } Special Thanks! The Go gopher was designed by Renée French. Free gophers: https://github.com/egonelbre/gophers