簡體   English   中英

簡潔的方案R5RS使用多個字段定義結構或類

[英]Concise scheme R5RS define struct or class with multiple fields

我設法用一個字段定義一個結構,如何在一個結構或類中定義多個字段?

我是R5RS的新手,我只能拿出有問題的代碼,請看一下它是表示我要執行的操作的偽代碼。

(define recipe 
    (let (salt 5)
         (sauce "ketchup")))

要么

(define recipe
   '((let salt 5)
     (let sauce "ketchup")))

什么是最簡潔,最常用的方法?

大多數計划實施都通過SRFI 9提供記錄。 因此,根據您的情況,您可以定義一個recipe記錄類型,如下所示:

(define-record-type <recipe>
  (recipe salt sauce)
  recipe?
  (salt recipe-salt)
  (sauce recipe-sauce))

然后,您可以像這樣使用它:

> (define salty-ketchup (recipe 5 "ketchup"))
> (recipe-salt salty-ketchup)
5
> (recipe-sauce salty-ketchup)
"ketchup"

如果您使用的是Racket,則可以使用更簡單的語法來定義結構。

(struct recipe (salt sauce))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM