racket - 如何访问球拍中节点的值?
问题描述
我已经定义了以下节点结构:
(struct list-node
(val next) #:mutable #:transparent)
但是,当我创建一个列表节点(list-node 0 #f)
时,我不知道如何访问这个创建的节点的 val。我怎么做?
解决方案
定义为的内容的字段用(struct <name> (<field-name> ...) ...)
访问,<name>-<field-name>
并且(如果可变)用 设置set-<name>-<field-name>!
。可能有一些选项会覆盖这些默认值,但我不知道它们。
因此对于
(struct list-node
(val next) #:mutable #:transparent)
然后list-node-val
获取val
alist-node
并set-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-node
with val
6
,而next
作为另一个list-node
who next
is original list-node
。
推荐阅读
- python - ValueError:对已关闭文件的 I/O 操作,flush()
- sql - 我有一个 Sql 表中日期之间的差异总和。如何计算以天、小时、分钟为单位的平均值?
- go - go-git 从轻量级标签中获取树
- html - 应用 z-index 时,非嵌套 div 是否算作兄弟?
- mysql - 无法安装 MySQL
- python - PyInstaller + Wine + NLTK = WinError 127 "RtlIpv6AddressToStringA"。有任何想法吗?
- javascript - 将 Google Analytics(分析)客户端 ID 保存到变量的问题
- python - 将元组列表转换为字典并将计数信息添加为字典值
- regex - 它可以将 head、sed 和 regex 一起工作到一个 bash 脚本中吗?
- docker - SuperSet 验证 Web 浏览器