首页 > 解决方案 > 如何访问球拍中节点的值?

问题描述

我已经定义了以下节点结构:

(struct list-node
  (val next) #:mutable #:transparent)

但是,当我创建一个列表节点(list-node 0 #f)时,我不知道如何访问这个创建的节点的 val。我怎么做?

标签: racket

解决方案


定义为的内容的字段用(struct <name> (<field-name> ...) ...)访问,<name>-<field-name>并且(如果可变)用 设置set-<name>-<field-name>!。可能有一些选项会覆盖这些默认值,但我不知道它们。

因此对于

(struct list-node
  (val next) #:mutable #:transparent)

然后list-node-val获取valalist-nodeset-list-node-val!设置它:

(let ([n (list-node 3 #f)])
  (set-list-node-val! n (+ 1 (list-node-val n)))
  (set-list-node-next! n (list-node 6 n))
  n)

将返回一个list-nodewith val 6,而next作为另一个list-nodewho nextis original list-node


推荐阅读