Javaでもラムダ式やStream APIなど比較的モダンな機能が取り入れられ、処理結果を2つ以上の値として返したい場合が増えてきています。 その方法として一つとして思いつくのが、他言語ではよく用意されているTupleです。 ところが、Javaには標準APIとしてTupleが用意されているないため、ちょっと調べたときのメモです。 Tupleとは タプル(tuple) タプルとは、順序付けられた複数の要素で構成される組。もとは数学の概念だが、いくつかのプログラミング言語にはタプルという名称のデータ型が用意されている。 タプル型の仕様は言語によって異なるが、複数の異なる型のデータやオブジェクトなどを格納でき、配列のように各要素に通し番号(添字)が割り振られ、これによって要素を識別するようなデータ構造を表すことが多い。また、LISPなどの関数型言語では二分木の構造になっているデータ型をタプルとい
(注:2017/02/27、いただいたフィードバックを元に翻訳を修正いたしました。) Haskellの型クラスは、Haskellを学び始めたばかりの多くの人にとっては難しい概念です。たいていの言語はこれを表すことが全くできませんし、それに近い概念も持っていません。多くのオブジェクト指向型の言語にとっては、利用可能なものの中では Interface が最も近い言語要素でしょう。Rubyの modules は似たような役割を持っています。しかし、この概念は両方とも、名前の多重定義と一種のポリモーフィズムをアドレスするので、型クラスが提供するパワーの一部を欠いています。 この記事は、型クラスに興味を持っている人向けです。Haskellや関数型プログラミングの予備知識は必要ありません。JavaやC言語のような静的な型付き言語に慣れていれば、役に立つでしょう。 型クラスについての概要/要約 型クラス
前編を書いたのが9月です。月日がたつのは早いものです。今日は中編です。途中まで後編のつもりで書いていましたが、すべて書ききらないので中編になりました。後編はいつになるのやら、という感じですが。 プログラミングのなぜに答える会で、Tさんから「Javaでstaticを使う場合はどう判断しますか?」という質問がありました。以下、Javaのstaticの働き自体は分かっている前提とします。 表面的な回答は簡単です。あるクラスのstaticフィールドやstaticメソッドは、そのクラスのオブジェクト群(インスタンス)で共有したい状態や操作に対して使います。別の説明として、staticフィールドやstaticメソッドはオブジェクトを生成せずに使いたい状態や操作に使います、などが回答になりえます。嘘ではありませんが、この説明だけでは、staticをいつ使うべきかの判断にはなりません。 staticフィー
@kawanoshinobu は普段はとっても温厚そうです。 でもキレるとPCの電源を引き抜いたりします。こわいです。そんな @kowanoshinobu に 「ワレ、いつもSenchaを教えてやっとるやんけ。なんか書けや!」と言われました。こわいです。 そんな訳で この記事はSencha Advent Calendar 2012の11日目です。JavaScriptはそんなに好きではないので、そんなに好きではないJavaの話をします。 SenchaにはModelというクラスが存在します。その名の通りMVCのModelです。SenchaではModelクラスを使ってJSONのデシリアライズをします。 クライアントサイドから見ればModelでも、サーバーサイドから見ればViewです。サーバーサイドでもやっぱりModelっぽいクラスを作って、それをJSONにシリアライズします。Mapだと型がObj
Effective Java 第2版 (The Java Series) 作者: Joshua Bloch出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行本(ソフトカバー) 1990年代前半から中頃(?)までは、オブジェクト指向と言えば、継承というはやりがありました。特にC++ではインタフェースの概念が言語仕様上なく、すべてをクラスの継承で表現しなければなりませんでした。その結果、すべてを継承で設計し、いわゆる差分プログラミングが良いという考えもあったりしました。 項目16 「継承よりコンポジションを選ぶ」では、次のように述べられています。 メソッド呼び出しと異なり、継承はカプセル化を破ります[Snyder86] 。言い換えれば、サブクラス は適切に機能するために、スーパークラスの実装の詳細に依存します。スーパークラスの実装はリリー スごとに変更さ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く