我正在研究一些C和TCL库,它们在变量名的末尾使用addin a p的约定来引用布尔值,即
set is_registered_p 0
# do stuff
if { $is_registered_p } {
#do stuff
}
我在多个文件和多个来源中发现了这个,所以我认为它必须是某种约定。
答案 0 :(得分:6)
最可能的是它代表“ P redicate”(即,可以评估产生布尔值的条件)但它不是一个约定这在大多数Tcl程序员中尤为常见。
如果某人使用该约定,您可能希望看到它包含变量和命令的名称;在前一种情况下,他们会持有布尔值,在后一种情况下,他们会在执行时返回布尔值。
答案 1 :(得分:5)
我的猜测是predicate。
还有a convention in LISP使用尾随P作为谓词函数。
答案 2 :(得分:5)
在名称的末尾添加p
似乎是谓词的常见LISP naming convention,与您显示的用法一致。
答案 3 :(得分:4)
谓词是一个函数,它测试涉及其参数的某些条件,如果条件为假则返回nil;如果条件为真,则返回一些非零值。可以将谓词视为生成布尔值,其中nil代表虚假,其他任何东西都代表真实。
按照惯例,谓词的名称通常以字母p(代表“谓词”)结尾。