在 Clojure 中将变量分配给多个向量
clojure.contrib.sql 模块有一个 create-table 函数,它接受表名和规范列表,如下所示:
(sql/create-table :services
[:id :serial "PRIMARY KEY"]
[:service_name :varchar "NOT NULL"]
[:pass_hash :varchar "NOT NULL"]
[:token :varchar "NOT NULL"])
如果我再次重复使用相同的列再说一遍,有没有办法定义这样的东西?
(def same-columns
[:id :serial "PRIMARY KEY"]
[:service_name :varchar "NOT NULL"]
[:pass_hash :varchar "NOT NULL"]
[:token :varchar "NOT NULL"])
当我尝试在 REPL 中运行它时,出现错误,因为它向 def 传递了太多参数。
The clojure.contrib.sql
module has a create-table
function that takes the table name and a list of specifications, like this:
(sql/create-table :services
[:id :serial "PRIMARY KEY"]
[:service_name :varchar "NOT NULL"]
[:pass_hash :varchar "NOT NULL"]
[:token :varchar "NOT NULL"])
If I'm reusing the same columns again and again, is there a way to define something like this?
(def same-columns
[:id :serial "PRIMARY KEY"]
[:service_name :varchar "NOT NULL"]
[:pass_hash :varchar "NOT NULL"]
[:token :varchar "NOT NULL"])
When I tried running that in the REPL I got an error, because it passes too many arguments to def
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能可以使用 apply 来实现此目的:
如果您还有其他列,您也可以添加这些列:
You could probably use apply for this:
If you have other columns you can add those as well: