ifvarclass => 'class'
构建与class::
构建工作的方式有任何区别吗?我可以互换使用吗?添加promise时,使用“ifvarclass =>'class'”还是“class ::”notation有什么区别?
1
A
回答
1
不完全一样,但差不多。请注意,只要您使用类别表达式 (expression::
),上下文限制就会应用到下一个表达式或 ,直到下一个承诺类型,因此它可能适用于多次承诺 其中ifvarclass仅适用于一个承诺时间。另外从3.7.0开始, 是一个if
alias到ifvarclass
,这是更好的类型恕我直言。
对于简单的基于类的约束是的,它们可以互换使用。
bundle agent main
{
vars:
"classes" slist => { "linux", "windows" };
reports:
"I am a Linux box"
ifvarclass => "linux";
linux::
"I am still a Linux box";
}
R: I am a Linux box
R: I am still a Linux box
您还可以互换使用简单表达式。
bundle agent main
{
vars:
"classes" slist => { "linux", "windows" };
reports:
"I am a Linux box"
ifvarclass => "linux.64_bit";
linux.64_bit::
"I am still a Linux box";
}
R: I am a Linux box
R: I am still a Linux box
直到3.7.0你不能使用传统的上下文类表达式变量 ($(my_variable)::
)和ifvarclass
是为能够使用 公理化变量作为约束有用。
例如直到3.7,你不得不这样做:
bundle agent main
{
vars:
"classes" slist => { "linux", "windows" };
reports:
"I am $(classes) box"
ifvarclass => "$(classes)";
}
R: I am linux box
由于3.7可以使用variable class expressions:
bundle agent main
{
vars:
"classes" slist => { "linux", "windows" };
reports:
"$(classes)"::
"I am $(classes) box";
}
R: I am linux box
这工作正常,直到你检查所包含的字符事情列表 在类中无效(如破折号)。这是ifvarclass
最有用的地方 ,因为它允许您即时变换字符串,甚至使用返回布尔值的函数 ,如isvariable()
。
以下示例显示ifvarclass
与canonify()
一起使用。
bundle agent main
{
classes:
# A class that was derived from a string containing invalid characters like special-class
"special_class" expression => "any";
vars:
"classes" slist => { "linux", "windows", "special-class" };
reports:
"I am $(classes) box"
ifvarclass => canonify($(classes));
}
R: I am linux box
R: I am special-class box
相关问题
- 1. final Class和Class有什么区别?
- 2. Perl中的新Some :: Class和Some :: Class-> new()有什么区别?
- 3. Class clazz和Class <?> clazz在java中有什么区别?
- 4. Class Path和Build Path有什么区别
- 5. class alv和function alv有什么区别
- 6. iPhone SDK:#import和@class有什么区别?
- 7. 在R中,class ts和class timeSeries之间有什么区别?
- 8. .class和.dex文件有什么区别?
- 9. `String.class`和`new Class [] {String.class}`有什么区别?
- 10. h1.class和h1(空格)之间有什么区别.class
- 11. C#中“Class”和“Private Class”声明有什么区别?
- 12. .class和#id:什么区别/何时使用?
- 13. 什么是<class> in load_obj.AddComponent <Class>();?
- 14. Class是什么?
- 15. 设置关系时,User :: class和App \ User有什么区别?
- 16. “class declaration head”的语法含义是什么?{val_name:Type =>`class body`}“
- 17. * .class和.class之间的gitignore区别
- 18. class Foo {this:SomeTraitType =>是什么意思?
- 19. “Class POCO”是什么?
- 20. 为什么“[self class] == [super class]”?
- 21. class myClass <String>是什么意思?
- 22. 什么是名单<T> Class?
- 23. class_eval和class << className有什么区别?
- 24. 使用PHP添加CSS-class
- 25. Class API中getDeclaredConstructors和getConstructors之间的区别是什么?
- 26. 在Class中Class Class <:: OtherClassName是做什么的?
- 27. 在DBIx :: Class中填充和创建方法有什么区别?
- 28. 何时使用class :: function或class->函数,是否有首选方法?
- 29. “.class元素”和“element.class”之间有什么区别?
- 30. 什么是Class对象(java.lang.Class)?