我有代码可以探测 PostgreSQL 数据库的元数据,所以我发现我的代码中包含了魔法字符串:
(case data_type
"integer" ...
"smallint" ...
"bigint" ...
"boolean" ...
...
其中“integer”“smallint”等是从数据库元数据表中的查询返回的值。
这篇文章建议使用关键字,所以也许更好地组织这些字符串的一种方法是为每个这样的魔术字符串集合定义一对编码/解码函数?
例如:
(defn datatypes-val->kwd [val] ;; return keyword from value
(defn datatypes-kwd->val [kwd] ;; return value from keyword
但它真的值得麻烦吗,因为它没有给我任何类型安全(就像Java 中的枚举一样)?