辞書アプリの改良:コマンド化

コマンド化

初期化処理が高速になったので、検索ごとにコマンドラインから実行するように変更する。


ここの部分を

def input = new BufferedReader(new InputStreamReader(System.in))
while (true) {
	print "search: "
	key = input.readLine()
	
	startCount()
	def resultList = dictionary.search(key)
	for (idx in resultList) {
		println idx.word
		if (resultList.size() <= 10) {
			println "=> " + dictionary.getDefinition(idx)
		}
	}
	print "time:" + stopCount()
	println ", count:${resultList.size()}" 
}


こう変更し、

key = args[0]
println "search: ${key}"

startCount()
def resultList = dictionary.search(key)
for (idx in resultList) {
	println idx.word
	if (resultList.size() <= 10) {
		println "=> " + dictionary.getDefinition(idx)
	}
}
print "time:" + stopCount()
println ", count:${resultList.size()}" 


下記のようなshellスクリプトを用意するだけ(しなくてもいいけど)。

groovy dict.groovy $1