适用于具有不同数量数据字段的用户的功能

2024-05-06

这个问题是我练习的时候产生的教程中的观察者主题 http://mishadoff.com/blog/clojure-design-patterns/#episode-10-observer我试图将该功能应用于用户,但无法使用用户的数据字段,例如姓名。

假设用户可能有不同数量的数据字段,因此我们必须使用& args争论。我的代码不起作用:

(ns observer.core)
(def user {:name "Alan" :surname "Smith" :alias "Mike"})
(def user2 {:name "Jane" :surname "Smith"})
(apply
 (fn [& args] (println (str "I am " (:name args) " " (:surname args) ".")))
   user)
(apply
 (fn [& args] (println (str "My sister is " (:name args) " " (:surname args) ".")))
   user2)

输出:

I am  .
My sister is  .
observer.core> 

如何解决这个问题apply必须使用函数吗?


apply将映射转换为 seq,即{:name "Alan" :surname "Smith" :alias "Mike"}变成([:name "Alan"] [:surname "Smith"] [:alias "Mike"])

如果您需要的话,您可以将其放回地图中:

(let [user {:name "Alan" :surname "Smith" :alias "Mike"}]
    (apply
        (fn [& args]
            (let [args (into {} args)]
                (println (str "I am " (:name args) " " (:surname args) "."))))
        user))

但这对我来说看起来有点牵强。我相信如果我知道如何使用这个函数,解决方案可能会更好。

通常有两种类型的函数:(fn :text "some" :row 25) and (fn {:text "some" :row 25}).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于具有不同数量数据字段的用户的功能 的相关文章

  • 是否有一个在线工具可以像 JSON 一样自动缩进和格式化 Clojure 代码?

    有很多在线工具可以获取 JSON 文本 并向您显示该文本的格式化和缩进格式 有些甚至更进一步 形成了一个漂亮的树状结构 http jsonviewer stack hu http jsonviewer stack hu 我们有类似的 Clo
  • 在环形应用程序中捕获异常的惯用方法

    处理环形应用程序中的异常的惯用方法是什么 我想捕获异常并返回 500 页 我怎么做 我在下面的代码中使用了 Mustache 但是它不起作用 def my app try app wrap logger true wrap keyword
  • 从批处理文件调用脚本时如何指定开关参数

    我有一个脚本foo ps1和一个批处理文件foo cmd用于通过双击文件资源管理器中的 cmd 文件来启动脚本 该脚本接受一个开关参数 但我不知道如何提供这种参数 简单的参数就可以了 Foo ps1 param Parameter Swit
  • 如何将 CORS 添加到 compojure-api 应用程序?

    如何将 CORS 添加到此代码片段 def app api swagger ui docs spec swagger json GET route a a GET route b b GET route c c 我想用https githu
  • 创建线程-传递参数

    我正在尝试创建多个线程 每个线程计算素数 我正在尝试使用线程创建将第二个参数传递给函数 它不断抛出错误 void compute prime void arg void arg2 这是我的 main 和创建线程 max prime 之后的
  • 为从 nginx 反向代理转发的请求添加唯一 id

    我们运行 nginx 作为反向代理 将请求转发到运行 Compojure 的 Clojure 应用程序 Compojure 是一个封装 Jetty 的库 为我们的应用程序提供服务 Web 请求的能力 目前 我们捕获 nginx 和 Cloj
  • 如何使用 core.async 在 Clojure 中写入日志文件?

    我想使用 core async 作为写入文件的记录器 因此我创建了一个 test txt 文件 将其粘贴在我的资源文件夹中并编写了以下代码 use clojure java io use clojure core async def pri
  • ‘access’参数模式有什么用处?

    Ada 中有三种传递参数的 正常 模式 in out and in out 但还有第四种模式 access 有什么需要它们的吗 即 否则不可能实现的事情 现在 我确实知道 GNAT JVM Ada 编译器在导入的 库 规范中大量使用了它们
  • 在 Clojure 中递归反转序列

    我想在 Clojure 中反转序列而不使用reverse函数 并递归地执行此操作 这是我想出的 defn reverse recursively coll loop r rest coll acc conj first coll if co
  • 为什么这个 Clojure 减速器 r/fold 没有提供任何性能优势?

    我想知道为什么下面的代码在 r fold 的情况下没有提供加速 我对减速器有什么误解吗 我在一个相当慢的 尽管有 2 个核心 Ubuntu 12 04 开发盒上运行它 通过 emacs 和 lein 运行 每个都有相同的结果 require
  • createNativeQuery 设置参数

    我有以下内容 其中包含 NativeQuery 我需要在其中设置参数 但有些事情是错误的 因为未设置参数 因此查询是 SELECT movieId title genres FROM movies where title like 所以返回
  • “date $1”参数化查询中的 PostgreSQL 语法错误

    尝试参数化我的 SQL 查询 使用 libpq 函数PQexec参数 http www postgresql org docs current static libpq exec html 我陷入了语法错误 SELECT date 1 错误
  • 在参数化中传递 pytest 夹具

    通过在 pytest mark parametrize 中传递 conftest py 中定义的装置 我收到以下错误 pytest alist 0220 0221 test 1 py v s NameError name alist is
  • const 或 ref 或 const ref 或 value 作为 setter 函数的参数

    恒定性 class MyClass private std string m parameter 按值传递 void MyClass SetParameter std string parameter m parameter paramet
  • Clojure Web 应用程序 - 我从哪里开始?

    最近我一直在研究 Clojure 我喜欢这门语言 我想看看我是否可以在其中制作一个小型网络应用程序 只是为了挑战自己 但是 我完全没有设置任何与 Java 相关的 Web 应用程序的经验 事实上 我对 Java 并没有太多的经验 我从哪说起
  • Scala - Java = ? (或者 Clojure - Java = ?)

    开发人员可以在不懂 Java 的情况下使用 Scala 吗 开发人员可以在不懂 Java 的情况下使用 Clojure 吗 注意 例如 我是一名 C 开发人员 我在不了解任何 VB 的情况下使用 NET 当然 WF 4 0 使用 VB 进行
  • 将数组文字传递给 PostgreSQL 函数

    我有一个包含 select 语句的 Postgres 函数 我需要使用包含字符串值数组的传入变量添加条件 CREATE OR REPLACE FUNCTION get questions vcode text RETURN return v
  • Javascript 函数指针,以参数作为函数中的参数

    不确定标题的措辞是否正确 或者是否有更好的表达方式 但我认为还可以 无论如何 到目前为止我了解以下内容 a b a b c foo 其中 foo 是在其他地方定义的函数 不接受任何参数 只会导致函数 a b 使用上述参数运行 然后可以在函数
  • 无法删除 IntelliJ/Cursive 中的括号

    我正在使用 IntelliJ Cursive 编写 Clojure 我发现 删除括号的唯一方法就是将其中的内容完全删除 然后才能将括号删除 例如 假设我有以下代码 list 我只想删除左括号 一旦我在左括号上按退格键 IDE 就会忽略此行为
  • 为什么我收到无法动态绑定非动态变量?

    我正在尝试使用 clojure tools trace 命名空间的 dotrace 函数 dotrace my function my function 5 但我收到了这个错误 IllegalStateException 无法动态绑定非动态

随机推荐

  • 当有效的 django 表单保存在数据库中时如何触发自定义 python 代码

    Django 新手 我创建了一个简单的表单如下this https www youtube com watch v 3XOS UpJirU教程 我的表单正确地将数据保存在我的 Postgres 连接的本地数据库中 我想知道 每当将有效表单保
  • 如何使用 ASP.Net Core Identity 从登录用户检索 Google 个人资料图片?

    好的 我目前正在使用 ASP NET Core 1 1 2 和 ASP NET Core Identity 1 1 2 其中重要的部分是启动 cs看起来像这样 public void Configure IApplicationBuilde
  • R - 过滤器坐标

    我是 R 新手 我有一个简单的问题 据我看来 但到目前为止我还没有找到解决方案 我有一组 长 2D x y 坐标 只是 2D 空间中的点 如下所示 ID x y 1 1758 56 1179 26 2 775 67 1197 14 3 29
  • ASP.NET Core 3:如何在自定义库中引用 3.0.0 程序集?

    我看到引用的应用程序Microsoft AspNetCore App框架 又称为 ASP NET Core 3 0 使用程序集中的类型Microsoft AspNetCore Mvc Abstractions Version 3 0 0 0
  • 使用正整数参数优化

    我需要解决一个需要比较具有相同列数的两个矩阵的问题 其中之一被操纵 直到获得最佳匹配 我对两个矩阵之间的差异进行评分的方式非常复杂 我仍然需要最终确定它 目前我真正感兴趣的是找到一种仅适用于正整数的搜索 优化算法 我创建了一个简单的示例 其
  • PostgreSQL 计数查询、物化视图的效率[重复]

    这个问题在这里已经有答案了 可能的重复 PostgreSQL 计数查询优化 https stackoverflow com questions 13075210 optimization of count query for postgre
  • MapKit 是否支持街景?

    我可以在我的应用程序中使用 Google 地图街景吗 No 填充字符以克服有问题的最小值
  • 复制文件而不冻结 GUI

    好的 基本上这就是我想做的 我的文件列表中有一个文件列表应用程序包 例如在文件夹中myData 请注意 子文件夹 等中有很多文件 文件夹 我想要复制整个文件树到用户磁盘上的给定位置 我需要有访问每个单独的文件被复制 因为其中一些在复制之前需
  • Excel JS - 获取范围数字格式

    我正在 React 中使用 Excel Office JS API 数据被推送到 Excel 范围 我正在尝试执行以下逻辑 检查范围 单元格格式是否为常规 如果是通用格式 则将格式设置为特定的日期时间格式 如果不是通用格式 请勿更改格式 看
  • 如何与开发团队成员一起在我的设备上测试 iPhone 应用程序?

    我是一名 iOS 初学者 我收到团队成员的邀请 所以我接受了邀请 现在我正在尝试在我的设备上测试 iPhone 应用程序 但我在 Xcode 帐户中看不到团队帐户 只有我的免费开发者帐户 个人团队 如果我与团队帐户成员一起测试该怎么办 No
  • 测量字符串的像素宽度

    我需要在 Cocoa Touch 中测量字符串的像素宽度 谁能给我指出一个解释如何执行此操作的链接 在 iPhone 操作系统上略有不同 请查看NSString UIKit 添加参考 http developer apple com iph
  • 打开 Chrome 扩展程序时出现 Service Worker TypeError

    当我打开 WAVE Web 可访问性评估工具 扩展时 我的服务工作人员在 Chrome 中抛出此错误 未捕获 承诺中 类型错误 请求方案 chrome extension 是 不支持的 在 sw js 52 匿名 sw js 52 Prom
  • 条件表达式在包内是否被破坏?

    考虑以下片段 requires designide rtl vcl IF RTLVersion lt 19 0 E2026 Constant expression expected IF CompilerVersion 22 0 same
  • Berkeley DB 文件分割

    我们的应用程序使用 berkeley db 进行临时存储和持久性 一个新的问题出现了 来自各种输入源的大量数据 现在底层文件系统不支持这么大的文件大小 有没有办法将 berkeley DB 文件拆分为逻辑文件段或分区而不丢失其中的数据 我还
  • 从MySQL php中的特定列获取最大ID和最小ID

    我是新来的php现在尝试从中检索数据MySQL到安卓 这是我的工作细节 table In 检索总小时数函数 我想检索最短 ID 时间 and 最大 ID 超时 from MySQL到安卓通过php最后使用下面的代码来获取总小时数 假设 ID
  • 从不同的类访问 NSMutableArray

    我有一个类 其中形成了 NSMutableArray 对象 如下所示 navBarColour NSMutableArray alloc initWithObjects colourOfNavBar nil 然后我有另一个类 其中正确添加了
  • 每次分页获取后将数据附加到同一集合

    我正在尝试使用主干填充 Instagram 图像 我基本上有以下3个模型 用户模型存储与 Instagram 相关的所有用户信息 App Models User Backbone Model extend defaults id acces
  • 类似于 Active Directory 中的搜索

    我正在使用 C 中的以下代码搜索 LDAP 以轮询用户的活动目录 DirectoryEntry entry new DirectoryEntry ldapPath userName password DirectorySearcher Se
  • oracle sql中where条件的动态数量

    我需要为报告工具中的提示编写一条sql 我得到变量中用 分隔的多个值的列表 并且这些值的数量可以变化 例如1 abc def eg2 abc def xyz 现在我需要在oracle中编写这种形式的sql 逻辑上 select someth
  • 适用于具有不同数量数据字段的用户的功能

    这个问题是我练习的时候产生的教程中的观察者主题 http mishadoff com blog clojure design patterns episode 10 observer我试图将该功能应用于用户 但无法使用用户的数据字段 例如姓