gpt4 book ai didi

clojure - 在 ClojureScript Figwheel 中访问 defrecord 方法

转载 作者:行者123 更新时间:2023-12-01 03:35:50 25 4
gpt4 key购买 nike

我在 cljc 文件中有一些代码可以编译为 Clojure 和 ClojureScript。

在protocols.cljc

(defprotocol Transformable ".." 
(scale [this scalar] "" ) ...)

在模式.cljc
(defrecord APattern [paths]
Transformable
(scale [this s] (...)) ...)

在另一个.cljc
(defn f [pattern] (.scale pattern (/ 1 2)) )

在 core.cljs 中
(another/f pattern)

但是,我在浏览器控制台上遇到错误
TypeError: pattern.scale is not a function

检查 core.cljs 中模式对象的字段(使用 js-keys)显示该对象有一个名为
"patterning$protocols$Transformable$scale$arity$2"

这看起来像我的功能。那么我只是在 ClojureScript 中访问它时做错了吗?做 。符号不起作用?我需要做其他事情吗?

最佳答案

对协议(protocol)函数的调用就像对任何其他函数的调用一样。所以你的f函数应如下所示:

(require 'protocols)
(defn f [pattern] (protocols/scale pattern (/ 1 2)) )

关于clojure - 在 ClojureScript Figwheel 中访问 defrecord 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com