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
yukpiz
October 23, 2018
Technology
120
0
Share
Golang Beginners!
Okinawa.go #10の資料です!
yukpiz
October 23, 2018
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
最近の技術系の話題で気になったもの色々(IoT系以外も) / IoTLT 花見予定会(たぶんBBQ) @都立潮風公園バーベキュー広場
you
PRO
1
200
サイバーフィジカル社会とは何か / What Is a Cyber-Physical Society?
ks91
PRO
0
200
CloudSec JP #005 後締め ~ソフトウェアサプライチェーン攻撃から開発者のシークレットを守る~
lhazy
0
220
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
試されDATA SAPPORO [LT]Claude Codeで「ゆっくりデータ分析」
ishikawa_satoru
0
400
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
4
530
Introduction to Bill One Development Engineer
sansan33
PRO
0
410
最新の脅威動向から考える、コンテナサプライチェーンのリスクと対策
kyohmizu
0
230
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
最初の一歩を踏み出せなかった私が、誰かの背中を押したいと思うようになるまで / give someone a push
mii3king
0
150
Code Interpreter で、AIに安全に コードを書かせる。
yokomachi
0
6.5k
生成AI時代のエンジニア育成 変わる時代と変わらないコト
starfish719
0
7.5k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Prompt Engineering for Job Search
mfonobong
0
260
We Are The Robots
honzajavorek
0
210
My Coaching Mixtape
mlcsv
0
97
How STYLIGHT went responsive
nonsquared
100
6k
The Spectacular Lies of Maps
axbom
PRO
1
690
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
KATA
mclloyd
PRO
35
15k
Chasing Engaging Ingredients in Design
codingconduct
0
170
Optimizing for Happiness
mojombo
378
71k
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