Okinawa.go #10の資料です!
Golang Beginners!Written by @yukpizOct 4, 2018Lightning talks party night! at Okinawa!Oct 23, 2018Okinawa.go #10
View Slide
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を考え中//\\\\\\\\\ せっかくなので沖縄でイベント開催してみよう!
What’s golang?mainパッケージだとコマンドライン実行可能標準で言語に含まれるパッケージでも、利用するときはimportするmainパッケージの場合、実行時にmain関数が呼び出される
What’s golang?//\ 2012年にリリース(現在v1.11、go2のドラフト発表)//\\\ コマンドラインツール、WebAPI、バッチ処理//\\\\\ AWS Lambda、GAE/Go、Cloud Function(Coming soon!)//\\\\\\\ 静的型付け言語、並列実行に強い、シンプルな構文//\\\\\\\\\ クローラー、メッセージ一斉配信、WebAPI
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//\ 宣言と代入の違いを理解しよう//\\\ 未使用変数を残して、コンパイルできない//\\\\\ 変数は宣言された位置でメモリが確保される//\\\\\\\ 変数宣言は使用する直前に書くように心がける
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(長さ)はスライスの長さ5Capacity(容量)は実体配列の容量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//\ 配列は固定長、スライスは可変長(のように振る舞う)//\\\ 配列は実体、スライスは配列の参照//\\\\\ 暗黙的に配列の実体が再生成される場合がある
Pointer 1st//\ 基本的なポインタの扱いを学ぶ//\\\ パフォーマンスを意識したコードを書けるようになる
Pointer 2stProfile構造体のポインタ変数を宣言、初期化ポインタ変数はメモリ番地を出力できる”&”がついているのはポインタ変数”*”をつけてアクセスすると値が得られるポインタ変数でもフィールドにアクセス可能
Pointer 3rdf1にポインタ変数を渡すf2に値を渡すProfile構造体のポインタ変数を引数に取る関数Profile構造体の値を引数に取る関数
Pointer 4th//\ 値コピーを避ける為にポインタを利用する//\\\ ポインタ変数であってもフィールドにアクセスができる//\\\\\ 特に値コピーによる関数の引数でポインタを使う
Summaries!
You have a fun golang life!//\ APIやバッチ処理での活用事例が増えている言語//\\\ パッケージ管理が標準導入されたり(v1.12)//\\\\\ go2のドラフトデザインが発表されたり//\\\\\\\ Go言語の書けるエンジニア少ない
Closing?No!!Please join us!for After-Party:)
@yukpizリピーターに長く愛されるそんなお店づくりを支援したい* Marketing Support* Concierge Support* Opening Supportfor Restaurants !!yukpizWe 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