enum
类型在 Raku 中比在其他一些语言中要复杂得多,详细信息可以在 其类型描述 中找到。
本简短文档将提供一个简单的使用示例,就像在类 C 语言中通常的做法一样。
假设我们有一个程序需要写入不同的目录;我们想要一个函数,它在给定目录名称的情况下,测试它是否存在 (1) 以及 (2) 用户是否可以写入它;这意味着从用户角度来看有三种可能的状态:要么可以写入 (CanWrite
),要么没有目录 (NoDir
),要么目录存在,但你无法写入 (NoWrite
)。测试结果将决定程序接下来采取的操作。
<CanWrite NoDir NoWrite>;sub check-dir-status( --> DirStat)# test each of three directories by a non-root usermy = ('/tmp', # normally writable by any user'/', # writable only by root'~/tmp' # a non-existent dir in the user's home dir);for -># output# status of dir '/tmp': CanWrite# user can write to dir: /tmp# status of dir '/': NoWrite# status of dir '~/tmp': NoDir