布尔值中的p字代表什么?

Bad*_*heh 1 c tcl naming-conventions

我正在研究一些C和TCL库,这些库在变量名的末尾使用addin ap的约定来指代布尔值,即

set is_registered_p 0
# do stuff
if { $is_registered_p } { 
    #do stuff
}
Run Code Online (Sandbox Code Playgroud)

我在多个文件和多个来源中找到了这个,所以我认为它必须是某种约定.

Don*_*ows 6

最可能的是它代表" P redicate"(即,可以评估产生布尔值的条件),但它不是大多数Tcl程序员中特别常见的约定.

如果有人使用约定,您可能希望看到它包含变量和命令的名称; 在前一种情况下,他们会持有布尔值,在后一种情况下,他们会在执行时返回布尔值.


unw*_*ind 5

My guess would be predicate.

There's also a convention in LISP to use a trailing P for predicate functions.


Sha*_*our 5

看起来添加p到名称的末尾是谓词的常见LISP 命名约定,它与您显示的用法一致.