ひととおり読み終えた。
- 作者: Dave Thomas,Chad Fowler,Andy Hunt,まつもとゆきひろ,田和勝
- 出版社/メーカー: オーム社
- 発売日: 2006/08/26
- メディア: 大型本
- 購入: 7人 クリック: 270回
- この商品を含むブログ (152件) を見る
最近のプログラミング環境に必要な技術というのはもはや言語仕様を覚えるよりも豊富なライブラリを如何に使いこなすかという割合が増えてきているわけで、となるとプログラミングにおいて頻繁に使用する要素 (文字列、配列、ハッシュなど) はシンタックスシュガーで言語仕様からライブラリに歩み寄るのは自然な考えなんだなというのが感想。
Java の言語仕様で特別扱いされているのは文字列 (java.lang.String) だけだと思うけど、ハッシュ (java.util.Map?) くらいならば採用してもいいんじゃないかと思う。*1
/** * コンパイルできないよ\(^o^)/ */ import java.util.*; public class HashSyntaxSugar { static public void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); map["foo"] = "bar"; // コンパイラは map.set("foo", "bar") と解釈する。みたいな... String str = map["foo"]; // コンパイラは map.get("foo") と解釈する。みたいな... } }
コンパイルしようとしたら、けっこうお堅い日本語のエラーが出てきました。w
% javac HashSyntaxSugar.java HashSyntaxSugar.java:12: 互換性のない型 検出値 : java.lang.String 期待値 : int map["foo"] = "bar"; // コンパイラは map.set("foo", "bar") と解釈する。みたいな... ^ HashSyntaxSugar.java:12: 配列が要求されましたが、java.util.Map<java.lang.String,java.lang.String> が見つかりました。 map["foo"] = "bar"; // コンパイラは map.set("foo", "bar") と解釈する。みたいな... ^ HashSyntaxSugar.java:14: 互換性のない型 検出値 : java.lang.String 期待値 : int String str = map["foo"]; // コンパイラは map.get("foo") と解釈する。みたいな... ^ HashSyntaxSugar.java:14: 配列が要求されましたが、java.util.Map<java.lang.String,java.lang.String> が見つかりました。 String str = map["foo"]; // コンパイラは map.get("foo") と解釈する。みたいな... ^ エラー 4 個