サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
zenn.dev/syumai
はじめに 2024年8月13日、Go 1.23がリリースされ、ついにイテレータが利用可能となりました。 この記事では、Goのイテレータについて、 どうやって使うのか どこまで知っておく必要があるのか を理解することをゴールとします。 基本的な知識 基本的な知識としては、以下の内容を知っていれば問題ないです。 for文のrangeループの仕様が変わった 関数を対象にrangeループを回せるようになる rangeループの対象にできる種類の関数をイテレータと呼ぶ イテレータには3種類ある for文のrangeループの仕様が変わった Go 1.22までは、for文によるrangeループの対象にできたのは、配列, slice, 文字列, map, channel, 整数だけでした。 Go 1.23で、ここに関数(ただし、特定の形式に限る)が加わりました。 ここで、rangeループの対象にできる形式の
Cloudflare Workersで簡単にGoのHTTPサーバーを動かすためのライブラリを作ったので、紹介させていただきます。(まだかなり実験的な実装です) 特徴 http.Handlerを作って、 workers.Serve に渡すだけでCloudflare Workers上でHTTPサーバーとして動作する 必要なツールはtinygoとwrangler (Cloudflare WorkersのCLI) だけ JavaScript側のコードを触る必要が無い Cloudflare R2のバインディング(一部)を提供している 今後、KV等の対応も頑張る予定 デモ 下記のURLにアクセスすると Hello, world! と表示され、例としてURL末尾の world を syumai に差し替えると、 Hello, syumai! と表示されます。 ソースコードは、以下のような非常にシンプルな
2022/12/30 追記 今はもう Public Buckets の機能があるので、このスクラップの内容は基本的に必要ありません。 Bucket Accessの設定からDomain Accessを有効化することで、キャッシュも効くようになります。 下記の記事が参考になりそうです。 Cloudflare R2の画像をCache APIでキャッシュして返したのでそのメモ。
先日、安かったと言う理由だけで、ついSUNMI V1sを購入してしまいました。 SUNMI V1sは、レシート印刷機能内蔵のオシャレなAndroid端末です。通常は、QR決済に対応したレジなどに置いてありますが、最近は中古品が大量に流通しているようです。 また、家電量販店でも同シリーズの端末を購入することが出来るそうです。 これを有効活用するには自分オリジナルのコンテンツを印刷出来るアプリを作るしかない!と思ったので作ってみました。 アプリを作る過程で知った情報についてまとめることで、似た境遇の方が助かるのではと思ったので書いておきます。 本記事の内容は、基本的にPrinting Service - Sunmi Developer Docsを参考にしています。 大前提 SUNMI端末のプリンタを自由に使うには、Androidアプリを作ることが絶対に必要になります。 最終的に、何かしらの手段
こちらはGo Advent Calendar 12日目の記事です。 Go 1.18 で interface{} の代わりに any が使えるようになるという話が出ていたので、これの使い方について書いてみようと思います。 any が入った詳細な経緯などについては10日目のsg0hsmtさんの記事で解説いただいていましたので、こちらをご覧ください。 (内容がやや被っていてすみません) any とは何か any は Go 1.18 で入る予定の、事前宣言された interface{} に対する型エイリアスです。 Goのプログラム全体のスコープ (ユニバースブロック) で、次のようなエイリアス宣言が行われているものと考えると理解しやすいと思います。
本記事では、GoのGenerics関連のProposal一覧のまとめと、簡単な解説を行います。 内容については随時更新を行います。 (本記事の内容をGo 1.17 リリースパーティーにて発表しました。) Generics関連のProposal一覧 (2022/2/3 更新) GoのGitHub Issueと、Gerritから見付けたGenerics関連のProposalを表にまとめました。 Proposal Status Author GitHub Issue Design Doc / Gerrit
軽い気持ちでTwitterに投下したクイズに思った以上に反響があったので、解説記事を書きました。 クイズについて 投下したクイズは次のような内容です。 func main() { println(f()) } func f() (a, b int) { defer func() { a += 1 b += 1 }() return 2, 3 } この時の出力結果を問う問題で、選択肢は下記の4つです。 0 0 1 1 2 3 3 4 問題のポイント このコードの挙動を知るためのポイントは下記の3つです。 関数は何を返しているのか return 文は何をしているのか defer 文で遅延された関数の実行タイミング まず、関数宣言の構文のおさらいを行って、その後解説に進みます。 おさらい 下記に、今回の内容に関係する部分のEBNFを抜粋[1]したものを示します。 FunctionDecl (関数
本記事は、2021年3月18日(木)に開催の、入門Go言語仕様輪読会 第2回のために執筆したものです。 はじめに Goには 型 の機能が存在します。 型を利用することで、 変数の型を指定し、その変数に対して代入できる値を限定する 値の型を指定し、その値に対して行える演算処理を限定する 同じ型を持つ値に対して共通した処理を記述する といった事ができます。 例として、代入や足し算について考えてみましょう。 // OKな例 var i1 int = 10 var i2 int = 1 i1 = i2 // OK fmt.Println(i1 + i2) // OK // NGな例 var i int = 10 var f float64 = 1.0 i = f // compile error fmt.Println(i + f) // compile error 上記の NGな例 のように、整
このページを最初にブックマークしてみませんか?
『syumaiさんの記事一覧』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く