首页 > 解决方案 > 如何创建项目并将其添加到字典

问题描述

我正在尝试使用以下代码创建一个字典或哈希表,其中键是字符串,值是整数:

(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

问题出在哪里,如何解决?

标签: dictionaryhashmapracket

解决方案


问题是文字#()是一个空向量。

要制作可变哈希表,请使用(make-hash).

 (define dict (make-hash))

推荐阅读