美文网首页收藏
第七章 ObjectScript - Variables

第七章 ObjectScript - Variables

作者: Cache技术分享 | 来源:发表于2023-08-23 04:29 被阅读0次

    第七章 ObjectScript - Variables

    Variables

    ObjectScript 中,有两种变量,按它们保存数据的方式分类:

    局部变量可以具有公共或私有范围。

    • 局部变量,在内存中保存数据。

    局部变量可以具有公共或私有范围。

    • Global,在数据库中保存数据。这些也称为全局变量。与Global的所有交互都会立即影响数据库。例如,当设置Global值时,该更改会立即影响存储的内容;没有单独的步骤来存储值。同样,当删除Global时,数据会立即从数据库中删除。

    变量名称

    变量的命名遵循以下规则:

    • 对于大多数局部变量,第一个字符是字母,其余字符是字母或数字。有效名称包括 myvari
    • 对于大多数Global,第一个字符始终是脱字号 (^)。其余字符是字母、数字或句点。有效名称包括 ^myvar^my.var

    IRIS 还支持一种特殊的变量,称为百分比变量;这些不太常见。百分比变量的名称以百分比字符 (%) 开头。百分比变量的特殊之处在于它们始终是公共的;也就是说,它们对进程中的所有代码都是可见的。这包括调用堆栈中的所有方法和所有过程。

    定义百分比变量时,请使用以下规则:

    • 对于局部百分比变量,名称以 %Z%z 开头。其他名称保留供系统使用。
    • 对于global百分比变量,名称以 ^%Z^%z 开头。其他名称保留供系统使用。

    变量类型

    ObjectScript 中的变量是弱动态类型的。它们是动态类型的,因为不必声明变量的类型,并且变量可以采用任何合法值,即任何合法的文字值或任何合法的 ObjectScript 表达式。它们是弱类型的,因为用法决定了它们的计算方式。

    ObjectScript 中的合法文字值具有以下形式之一:

    • 数字。示例:10017.891e3
    • 带引号的字符串,它是包含在一组匹配的引号 ("") 内的一组字符。例如:"my string"

    要在字符串文字中包含双引号字符,请在其前面添加另一个双引号字符。例如: "This string has ""quotes"" in it."

    根据上下文,字符串可以被视为数字,反之亦然。类似地,在某些上下文中,值可以被解释为布尔值(真或假);任何计算结果为零的内容都被视为false;其他任何内容都被视为true

    创建类时,可以指定属性、方法参数的类型等。 IRIS 类机制按照预期强制执行这些类型。

    Variable Length

    变量值的长度必须小于字符串长度限制。

    Variable Existence

    通常使用 SET 命令定义变量。如前所述,当定义global 时,它会立即影响数据库。

    仅当杀死global(这意味着通过 KILL 命令删除它)时,它才会变得未定义。这也会立即影响数据库。

    局部变量可以通过以下三种方式之一变为未定义:

    • kill
    • 进程(定义它的过程)结束。
    • 它超出了该进程的范围。

    要确定变量是否已定义,请使用 $DATA 函数。例如,以下显示了使用此功能的终端会话:

    TESTNAMESPACE>write $DATA(x)
    0
    TESTNAMESPACE>set x=5
    
    TESTNAMESPACE>write $DATA(x)
    1
    

    第一步,我们使用 $DATA 来查看变量是否已定义。系统显示0,表示该变量没有定义。然后我们将变量设置为 5 并重试。现在该函数返回 1

    在此示例和前面的示例中,可能已经注意到没有必要以任何方式声明变量。 SET 命令就是所需要的。

    如果尝试访问未定义的变量,则会收到 <UNDEFINED> 错误。例如:

    TESTNAMESPACE>WRITE testvar
     
    WRITE testvar
    ^
    <UNDEFINED> *testvar
    

    相关文章

      网友评论

        本文标题:第七章 ObjectScript - Variables

        本文链接:https://www.haomeiwen.com/subject/neqpmdtx.html