假设我们在球拍中有以下代码:
(struct st ( field1 field2# ))
# 是什么意思?
#
没什么,它只是 field2# 这个名字的一部分 . Racket允许在名称中使用几乎所有符号 . 尽管有不寻常的符号, hash-ref! 已经得到了像普通函数一样的 hash-ref! 和 number? .
field2#
hash-ref!
number?
您可以像访问任何其他字段一样访问和设置它:
(struct st (field1 field2#)) (define a (st 1 2)) (st-field1 a) (st-field2# a)
打印出来
1 2
在DrRacket REPL中,正如您对普通struct字段的期望一样 .
这取决于具体情况 . 如果您在博客/书籍等文本中看到了符号字段#,那么它可能意味着“字段编号” . 通常使用#作为数字的缩写 .
另一方面,如果你在代码中看到它,如:
(struct foo (bar#))
然后bar#只是一个字段的名称 . 正如杰克写的那样,#是名字中的合法人物 .
2 回答
没什么,它只是
field2#
这个名字的一部分 . Racket允许在名称中使用几乎所有符号 . 尽管有不寻常的符号,hash-ref!
已经得到了像普通函数一样的hash-ref!
和number?
.您可以像访问任何其他字段一样访问和设置它:
打印出来
在DrRacket REPL中,正如您对普通struct字段的期望一样 .
这取决于具体情况 . 如果您在博客/书籍等文本中看到了符号字段#,那么它可能意味着“字段编号” . 通常使用#作为数字的缩写 .
另一方面,如果你在代码中看到它,如:
然后bar#只是一个字段的名称 . 正如杰克写的那样,#是名字中的合法人物 .