手动测试Clarity智能合约:如何打印变量当前值?
在Clarinet Console手动测试时查看变量值的方法
不用非得在函数末尾添加(ok variable_name)来查看变量值,Clarinet Console提供了更灵活的方式:
- 临时修改合约代码打印:在合约里你需要观察变量的位置,插入Clarity的
(print variable_name)语句,比如变量my-counter赋值后加一句(print my-counter)。重启Clarinet Console并调用对应函数,控制台就会输出该变量的实时值,测试完成后删掉这句即可。 - 直接在Console中查询合约变量:如果变量是合约的公开数据变量(通过
(define-data-var)定义),无需修改合约代码,直接在Console里执行:- 若有对应的读取函数:
(contract-call? .your-contract-name get-target-var) - 或者用Clarinet内置命令:
get var .your-contract-name target-var
- 若有对应的读取函数:
- 调试Console内临时变量:如果是在Console中临时定义的变量(比如执行
(set temp-val 20)),直接输入变量名temp-val回车,就能输出它的当前值。
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

