以下代码将生成#f
和#t
1: (define dict (hash 1 'a 2 'b ))
2: (hash? (string->symbol "dict"))
3: (symbol? (string->symbol "dict"))
基本上,我希望字符串"dict"
将变为第1行中定义的哈希dict
。我该怎么做?
答案 0 :(得分:2)
最简单的方法是eval
string->symbol
的结果,如下所示:
> (define dict 5)
> (eval (string->symbol "dict"))
5
然而,让eval
参与其中几乎从来都不是正确的事情。将字符串与值关联的更好方法是使用哈希表作为@yi_H建议:
> (define ht (make-hash))
> (hash-set! ht "dict" 5)
> (hash-ref ht "dict")
5
更新:我最初错过了[racket]
标记;该示例现在应该与#lang racket
一起使用。