Swiftのスクリプトで辞書
最近英語を勉強していて、せっかくなので英語勉強ツールを作ろうと思った。 まずそのパーツとして手始めに辞書機能をつくることに。
Macの標準の辞書アプリの機能を使ってみるのが良いかなと思いやってみました。
dict.swift
import Foundation import CoreServices func definition(word: String) -> CFString? { return DCSCopyTextDefinition(nil, word, CFRangeMake(0, word.characters.count))? .takeUnretainedValue() } func trimmed(str: String) -> String { return str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) } func main() { if let word = Process.arguments.dropFirst().first as String? { if let definition = definition(trimmed(word)) { print(definition) } } } main()
実行(Englishは検索したい文字)
swift dict.swift English
または以下でコンパイルしてファイル生成し実行
swiftc dict.swift ./dict English
または1行目に#!/usr/bin/env swift
シバンを書いておけば以下でいきなり実行できる
chmod +x dict.swift ./dict.swift English
Process.argumentsで引数一覧が取れる。とても楽。
DCSCopyTextDefinitionが辞書を使うCoreServicesのメソッド。第一引数に辞書をいれられるみたい。今回はデフォルトの辞書を使うのでnil。
次は文章を記憶していく機能を作りたい。