首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PltScheme文件系统中使用_bitmask

在PltScheme文件系统中使用_bitmask
EN

Stack Overflow用户
提问于 2009-12-12 05:02:59
回答 1查看 207关注 0票数 1

这是plt-scheme包装器库的一部分:

代码语言:javascript
复制
(define InputMask

  (_bitmask '(NoEventMask =            #x00000000

            KeyPressMask =             #x00000001

            KeyReleaseMask =           #x00000002

            ...

            OwnerGrabButtonMask =      #x01000000)

      _long))

问题是我不知道如何访问位掩码(或枚举)中的字段。例如,如何获取KeyPressMask值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-15 02:27:02

添加ctype很简单:要创建一个新的ctype,需要提供一个现有的ctype作为基础,并提供两个函数--一个用于将任何内容转换为现有类型,另一个用于以另一种方式转换。

现在,_bitmask类型就是这样做的--它构建在_int之上(但在本例中,它基于_long),两个转换函数将一个符号列表转换为一个整数,并将一个整数转换为一个符号列表。一旦使用了这样的类型,您就不需要知道KeyPressMask的值--您只需要知道可以将'(KeyPressMask)作为InputMask输入传递给外部函数,它将被转换为适当的数字;并且您还知道,当您从具有InputMask输出的函数获得结果值时,它将是一个可能包含KeyPressMask的符号列表。底线是,在Scheme方面,您不能处理数字--只能处理符号列表。

如果您出于某种模糊的原因确实需要访问这些值,那么您可以用其他方式构建您自己的ctype --使用make-ctype (如上所述)应该非常简单。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1890853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档