首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALFA中的常数(常数变量)

ALFA中的常数(常数变量)
EN

Stack Overflow用户
提问于 2018-05-25 20:36:14
回答 1查看 59关注 0票数 1

2015年3月10日阿尔法的绿洲工作草案01 ( ALFA - for -xacml-v1.0- 10 01)规定了常数值。

3.15常数值 常量值可以出现在策略表达式中。ALFA直接支持字符串、整数、双和布尔类型的常量。字符串以单引号或双引号引用。整数由一个数字和一个可选的减号组成。Double由一个带有小数点的数字和一个可选的减号组成。布尔值由真值和假值组成,没有引号。其他数据类型使用字符串、后跟冒号和数据类型的名称来表示。

这意味着,您可以使用该示例中的常量值(而report是常量值):

代码语言:javascript
复制
target clause requestedType == "report"

但是问题是,一旦ALFA文件增长,并且您已经编写了所有的常量值report,您可能想要将常量值更改为my.company.attributes.medicalReport。为了做到这一点,您必须找到并替换常量值的所有出现。

因此(为了避免冗余),constants是在其他语言中发明的,您可以在其中定义smth。喜欢

代码语言:javascript
复制
const string REPORT_TYPE = "my.company.attributes.medicalReport"

或者更有表现力:

代码语言:javascript
复制
const integer REPORT_TYPE_ID = 3

或者更优雅:

代码语言:javascript
复制
const enum SUBJECT_TYPES { PATIENT, USER, EXAM, REPORT }

在定义了这些常量之后,我可以编写目标如下:

代码语言:javascript
复制
target clause requestedType == REPORT_TYPE_ID

ALFA是否支持常量,或者是否有方法“模拟”它们(可能是返回所需值的函数)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-25 21:06:54

还没!这绝对是我们想要的一个特性。我们也有类似的要求,所以请继续关注。

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

https://stackoverflow.com/questions/50536528

复制
相关文章

相似问题

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