Skip to Content
Go言語による並行処理
book

Go言語による並行処理

by Katherine Cox-Buday, 山口 能迪
October 2018
Beginner to intermediate
256 pages
3h 35m
Japanese
O'Reilly Japan, Inc.
Content preview from Go言語による並行処理

補遺Bgo generate

本補遺は日本語版オリジナルの記事です。本稿ではgo generate†1の紹介とその利用方法を解説します。

B.1 空インターフェースの使用について

4章でパイプラインを構築する際に空インターフェース型(interface{})を利用していました。その理由として原著者は以下の2つを挙げています。

  1. 本書の紙面の節約のため
  2. パイプラインのステージを入れ替えやすくするため

1に関しては、言うまでもなく実プロジェクトの製品開発において考慮する必要のない理由です。型を付けることで、ビルド時に誤りを検出できたり、可読性が向上したり、と言った利点が生まれますし、通常は静的な型付けをするほうがパフォーマンスも向上します。

2に関して、パイプラインにおいて途中のステージでデータの加工をしないことはまずありえません。その際にステージの入力と出力で型が異なることは大いにありえます。したがって、仮にステージを表す関数のシグネチャを変えずに済んだとしても、ステージ内の実装を変更する必要は十分にありえるでしょう。そうしたことを鑑みると、空インターフェース型で持ち回しても、はじめから入力と出力に型を与えても大差がないように思われます。

このように、型をきちんと使ってパイプラインを定義することの意義は十分あるのですが、一方で本書内の例のような、ステージを容易に入れ替えられるような状況では空インターフェース型を利用したくなることもあるでしょう。

そういった要望に対応するため、Go 1.4よりgo generateが導入されたのですが、本文中ではわずかに触れられただけでした。そこで、補遺としてgo ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

プログラミングC# 第8版

プログラミングC# 第8版

Ian Griffiths, 木下 哲也, 鈴木 幸敏
Javaパフォーマンス

Javaパフォーマンス

Scott Oaks, Acroquest Technology株式会社, 寺田 佳央, 牧野 聡
PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志
UXデザインの法則 ―最高のプロダクトとサービスを支える心理学

UXデザインの法則 ―最高のプロダクトとサービスを支える心理学

Jon Yablonski, 相島 雅樹, 磯谷 拓也, 反中 望, 松村 草也

Publisher Resources

ISBN: 9784873118468Other