我偶尔会在变量的上下文中遇到flag
这个词,我对它有了自己的理解,但我仍然希望看到一个明确的定义。
答案 0 :(得分:3)
这通常是一个私有变量,由其他成员(属性,方法)使用,作为跟踪和确定在多个行动过程中进行选择的状态的便捷方式。
这些通常是(但不总是)布尔值或枚举值。
例如,您可能有一个名为IsDataLoaded
的布尔“标志”和一个名为ShowResults()
的方法。在ShowResults()
方法的正文中,您可以检查IsDataLoaded
标记的值,如果是true
,则只显示结果。如果false
,您首先调用LoadData()
方法。加载数据后,LoadData()
方法会将标记从false
更改为true
。
使用枚举和位掩码,“flags”可以是包含在单个值中的一组设置或选项。例如,如果您定义以下(C#):
enum foo
{
CaseSensitive = 1,
Use24HourTime = 2,
IgnoreRegistrySetting = 4,
LoadFoosAndBarsSeparately = 8
}
您可以使用13
之类的简单值指定设置,或使用CaseSensitive | IgnoreRegistrySetting | LoadFoosAndBarsSeparately
指定“标记”。
在.NET中,有一个System.FlagsAttribute
属性:
System.FlagsAttribute :表示可以将枚举视为位字段;也就是说,一组标志。
答案 1 :(得分:1)
通常但不一定是布尔值,使用标志变量来确定特定数据片段中的哪一个有限的离散组集合。
在普通语言中,您可能会标记一段数据,以表明它是一只猫。或者标记一份工作申请,说它不完整。
在C和C派生语言中,标志变量通常是枚举类型。
在CPU上,您通常会获得由先前操作设置的单位状态标志。例如。您可以将两个数字加在一起,然后根据是否应该从最顶部的位传送一个位来设置或取消设置'进位'标志。
答案 2 :(得分:1)
标志变量,最简单的形式, 是您定义的变量 值,直到某些条件为真,in 在哪种情况下你改变了变量 值。这是一个可以使用的变量 控制功能的流程或 声明,允许您检查 你的功能有一些条件 进行。
计算机实施
任何变量或常量 数据可以用作标志。您可以 把存储位置想象成一个 旗杆。存储在其中的值 变量传达了一些意义和你 可以把它想象成旗帜。
示例可能是名为的变量: 作为角色数据的性别 类型。通常存储这两个值 变量中有:'F'和'M' 意思是女性和男性。然后, 在我们可能的程序中的某个地方 看看变量来做一个 决定:
if gender equals 'F'
display "Are you pregnant?"
get answer from user store in pregnant variable
看着旗帜意味着比较 变量中的值到另一个变量 值(常数或值) 另一个变量)使用关系 运算符(在上面的例子中: 平等)。控制结构是 通过使用测试“控制” 表达式,通常是布尔值 表达。因此,国旗的概念 “查看”变量中的值 并将其与另一个值进行比较 理解所有方面的基础 控制结构工作。
答案 3 :(得分:1)
该字通常用于描述位字段:即某种整数变量,每个位具有特定含义。 Windows平台API广泛使用它们。