前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >属性关键字InitialExpression,Internal,Inverse,MultiDimensional

属性关键字InitialExpression,Internal,Inverse,MultiDimensional

作者头像
用户7741497
发布2022-07-07 11:31:27
2320
发布2022-07-07 11:31:27
举报
文章被收录于专栏:hml_知识记录

第101章 属性关键字 - InitialExpression

指定此属性的初始值。

用法

要指定此属性的初始值,请使用以下语法:

代码语言:javascript
复制
Property name As classname [ InitialExpression = initialexpression ];

其中,initialexpression是用大括号括起来的常量或ObjectScript表达式。

详解

此关键字指定属性的初始值。该值是在创建新实例时由类的%New()方法分配的。(如果属性是瞬态的的,则其初始值由创建实例时%New()调用的代码或实例从磁盘加载到内存时%OpenId()调用的代码确定。)

初始表达式的值必须适合给定的属性类型。

表达式可以是任意复杂的,有以下限制:

  • 初始表达式不能引用其他属性。也就是说,诸如{..therPropertyname}这样的表达式无效。
  • 初始表达式不能实例化对象,也不能包括对象引用。
  • 初始表达式不能调用实例方法(只能调用类方法)。
  • 必须在ObjectScript中指定初始表达式。
  • 表达式执行的代码不应报告错误。InterSystems IRIS不提供处理表达式返回的错误的方法。
  • 如果表达式执行的代码导致发生其他处理,则InterSystems IRIS不提供处理该处理结果的方法。

子类继承InitialExpression关键字的值并可以重写它。

默认

InitialExpression关键字的默认值为NULL

示例

下面显示了几个使用ObjectScript表达式的示例:

代码语言:javascript
复制
Property DateTime As %Date [ InitialExpression = {$zdateh("1966-10-28",3)} ];

Property MyString As %String [ InitialExpression = {$char(0)} ];

/// 此参数使用参数值进行初始化
Property MyProp As %String [ InitialExpression = {..#MYPARM} ];

/// 这是由一个类方法初始化的
Property MyProp2 As %Numeric [ InitialExpression = {..Initialize()} ];

第102章 属性关键字 - Internal

指定此属性定义是否为内部定义(不显示在类文档中)。

用法

要指定此属性为内部属性,请使用以下语法:

代码语言:javascript
复制
Property propertyname As classname [ Internal ]; 

否则,请省略此关键字或将该词放在该关键字之前。

详解

类文档中不显示内部类成员。如果希望用户看到某个类,但不能看到其所有成员,则此关键字非常有用。

默认

如果省略此关键字,则此属性将显示在类文档中。

第103章 属性关键字 - Inverse

指定此关系的反面。关系属性需要。不用于其他属性。

用法

要在相关类中指定与该关系属性相反的关系属性,请使用以下语法:

代码语言:javascript
复制
Relationship Chapters As Chapter [ Cardinality = cardinality; Inverse = inverse ];

其中,Inverse是相关类中属性的名称。

详解

此关键字指定关系的反向方的名称,即相关类中对应关系属性的名称。反向属性必须存在于相关类中,并且具有正确的基数值。

关系属性需要Inverse关键字。非关系属性会忽略它。

默认

没有默认值。定义关系时,必须指定逆序关键字。

示例

代码语言:javascript
复制
Relationship Chapters As Chapter [ Cardinality = many; inverse = Book ];

第104章 属性关键字 - MultiDimensional

指定此属性具有多维数组的特征。

用法

要指定此属性具有多维数组的特征,请使用以下语法:

代码语言:javascript
复制
Property Data [ Multidimensional ];

否则,省略此关键字或将单词Not放在关键字的前面。

详解

多维属性不同于其他属性,如下所示:

  • IRIS不为其提供属性方法。
  • 当对象被验证或保存时,它被忽略。
  • 它不会保存到磁盘,除非应用程序包含专门保存它的代码。也就是说,属性也是自动瞬态的。
  • 它不能暴露给Java或其他客户端。
  • 它不能存储在或通过SQL表公开。

多维属性很少见,但它提供了一种有用的方法来临时包含关于对象状态的信息。

默认

如果省略此关键字,则属性不是多维的。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第101章 属性关键字 - InitialExpression
  • 用法
  • 详解
  • 默认
  • 示例
  • 第102章 属性关键字 - Internal
  • 用法
  • 详解
  • 默认
  • 第103章 属性关键字 - Inverse
  • 用法
  • 详解
  • 默认
  • 示例
  • 第104章 属性关键字 - MultiDimensional
  • 用法
  • 详解
  • 默认
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档