dictionary - 如何创建项目并将其添加到字典
问题描述
我正在尝试使用以下代码创建一个字典或哈希表,其中键是字符串,值是整数:
(define dict #())
(dict-set! dict "bash" 1)
(displayln dict)
(dict-set! dict "racket" 1)
(displayln dict)
但是,它给出了以下错误:
dict-set!: contract violation
expected: (dict-implements/c dict-set!)
given: '#()
in: the d argument of
(->i
((d (dict-implements/c dict-set!))
(k (d) (dict-key-contract d))
(value (d) (dict-value-contract d)))
(_r void?))
contract from: <collects>/racket/dict.rkt
问题出在哪里,如何解决?
解决方案
问题是文字#()
是一个空向量。
要制作可变哈希表,请使用(make-hash)
.
(define dict (make-hash))
推荐阅读
- python - 访问所有节点并将它们添加到路径
- vba - Excel宏比较两个不同工作表中的两列并用序号替换它们的值
- java - 如何将 jdbcTemplate.queryForList 语句作为列表传递
- php - After adding jquery CDN link to my code, contact us "submit" button stop working
- reactjs - React: unique "key" prop does not apply to table rows?
- php - Eager loading the first item from multiple value from a related table in laravel 5.4
- json - jq:如何对嵌套对象进行切片以包含父键层次结构?
- ms-access - Crosstab query generates Run-Time error '13' Type mismatch
- swift - task.arguments 中的 Swift 参数
- java - JTable更改列顺序然后编辑单元格提升错误