当前位置: 首页 > news >正文

菜鸟建网站门户网站建设方案文档

菜鸟建网站,门户网站建设方案文档,网站的js效果代码大全,工邦邦官网文章目录 第二十一章 ClassesClasses类名和包类定义的基本内容 第二十一章 Classes Classes 类定义并不是 ObjectScript 的正式组成部分。相反,可以在类定义的特定部分中使用 ObjectScript(特别是在方法定义中,可以在其中使用其他实现语言&…

文章目录

  • 第二十一章 Classes
  • Classes
  • 类名和包
  • 类定义的基本内容

第二十一章 Classes

Classes

类定义并不是 ObjectScript 的正式组成部分。相反,可以在类定义的特定部分中使用 ObjectScript(特别是在方法定义中,可以在其中使用其他实现语言)。

类名和包

每个 IRIS 类都有一个名称,该名称在定义它的命名空间中必须是唯一的。完整的类名是由一个或多个句点分隔的字符串,如以下示例所示:package.subpackage.subpackage.class。短类名是该字符串中最后一个句点之后的部分;最后一个句点之前的部分是包名称。

包名称只是一个字符串,但如果它包含句点,IRIS 开发工具会将每个句点分隔的部分视为子包。为了方便起见,集成开发环境 (IDE) 和其他工具将这些子包显示为文件夹层次结构。

类定义的基本内容

IRIS 类定义可以包括以下项目,全部称为类成员:

  • Methods方法——有两种方法:实例方法和类方法(在其他语言中称为静态方法)。在大多数情况下,方法是子例程subroutine
  • Parameters 参数 — 参数定义供此类使用的常量值。该值是在编译时设置的。
  • Properties 属性——属性包含类实例的数据。
  • Class queries 类查询 — 类查询定义可由该类使用的 SQL 查询,并指定用作查询容器的类。
  • XData blocksXData 块是类中格式良好的 XML 文档,供类使用。
  • 仅与持久类相关的其他类型的类成员。

IRIS 类定义使用类定义语言 (CDL) 来指定类及其成员。可以使用 PythonObjectScript 在方法内部编写可执行代码。

类定义可以包含关键字;这些会影响类编译器的行为。可以为整个类指定一些关键字,为特定类成员指定其他关键字。这些关键字影响类编译器生成的代码,从而控制类的行为。

下面显示了一个简单的 IRIS 类定义,其中包含用 ObjectScriptPython 编写的方法:

Class MyApp.Main.SampleClass Extends %RegisteredObject
{Parameter CONSTANTMESSAGE [Internal] = "Hello world!" ;Property VariableMessage As %String [ InitialExpression = "How are you?"];Property MessageCount As %Numeric [Required];ClassMethod HelloWorld() As %String [ Language = objectscript ]{Set x=..#CONSTANTMESSAGEReturn x}Method WriteIt() [ Language = objectscript, ServerOnly = 1]
{Set count=..MessageCountFor i=1:1:count {Write !,..#CONSTANTMESSAGE," ",..VariableMessage}}}
Class MyApp.Main.SampleClass Extends %RegisteredObject
{Parameter CONSTANTMESSAGE [Internal] = "Hello world!" ;Property VariableMessage As %String [ InitialExpression = "How are you?"];Property MessageCount As %Numeric [Required];ClassMethod MessageWrapper() As %String [ Language = objectscript ]
{return ..#CONSTANTMESSAGE
}ClassMethod HelloWorld() As %String [ Language = python ]{import irisx = iris.cls("MyApp.Main.SampleClass").MessageWrapper()return x}Method WriteIt() [ ServerOnly = 1, Language = python ]
{import irisCONSTANTMESSAGE = self.MessageWrapper()count = self.MessageCountprint()for i in range(count):print(CONSTANTMESSAGE, self.VariableMessage)
}}

请注意以下几点:

  • 第一行给出了类的名称。 MyApp.Main.SampleClass 是完整类名,MyApp.Main 是包名,SampleClass 是短类名。

IDE 和其他用户界面将每个包视为一个文件夹。

  • Extends 是编译器关键字。

Extends 关键字指定该类是中 %RegisteredObject 的子类,该类是为对象支持提供的系统类。此示例类仅扩展一个类,但可以扩展多个其他类。这些类又可以扩展其他类。

  • CONSTANTMESSAGE 是一个参数。按照惯例,IRIS 系统类中的所有参数的名称全部大写。这是一个方便的约定,但不需要遵循它。

Internal 关键字是编译器关键字。它将这个参数标记为内部参数,从而禁止它在类文档中显示。该参数有一个字符串值。

必须通过 ObjectScript 访问类参数。在此类的 Python 版本中,我们使用 ObjectScript 类方法 MessageWrapper() 返回参数的值。

  • 可以从 Python 访问任何类方法。可以在所有上下文中使用 iris.cls("Package.Class").classMethodName() 语法,并在 Python 实例方法中使用 self.classMethodName() 语法。该示例显示了两种语法形式。
  • VariableMessageMessageCount 是属性。 As 后面的项目指示这些属性的类型。 InitialExpressionRequired 是编译器关键字。

可以直接从 ObjectScriptPython 访问 IRIS 类属性,如示例中所示。

  • HelloWorld() 是一个类方法,它返回一个字符串;这由 As 后面的项目表示。

此方法使用类参数的值。

  • WriteIt() 是一个实例方法,它不返回值。

此方法使用类参数的值和两个属性的值。

ServerOnly 编译器关键字意味着该方法不会投射到外部客户端。

以下终端会话显示了我们如何使用此类。两个终端 shell 对于该类的 ObjectScriptPython 版本均有效。

TESTNAMESPACE>write ##class(MyApp.Main.SampleClass).HelloWorld()
Hello world!
TESTNAMESPACE>set x=##class(MyApp.Main.SampleClass).%New()TESTNAMESPACE>set x.MessageCount=3TESTNAMESPACE>do x.WriteIt()Hello world! How are you?
Hello world! How are you?
Hello world! How are you?
>>> print(iris.cls("MyApp.Main.SampleClass").HelloWorld())
Hello world!
>>> x=iris.cls("MyApp.Main.SampleClass")._New()
>>> x.MessageCount=3
>>> x.WriteIt()Hello world! How are you?
Hello world! How are you?
Hello world! How are you?
http://www.yayakq.cn/news/966053/

相关文章:

  • 建设 网站工作汇报南京做网站找哪家好
  • 沈阳单页网站制作金华住房和城乡建设厅网站
  • 温州瑞安网站建设平台网站数据库怎么配置
  • iis 网站无法访问广告优化师招聘
  • 辽宁省网站备案系统什么网站做海报赚钱
  • 做网站 蓝洋建设部设计规范网站
  • 广告类的网站做宽带销售网站
  • 在跨境网站贸易公司做怎么样怎么还原wordpress
  • 做网站必须有框架是吗浙江省建设厅网站张清云
  • 深圳网站建设首选全通网络淘客推广佣金
  • 高端广告公司网站建设上海企业vi设计公司
  • wordpress相关网站北京住房和城乡建设部网站首页
  • 网站被恶意解析c2c电子商务网站定制开发
  • 求一个网站你知道的网站优化优化怎么做
  • 仿煎蛋wordpressseo关键词排名报价
  • 怎么将自己做的网站放到网上sns社区网站开发
  • 做网站用的字体是什么制作wordpress
  • 厦门建站服务wordpress网站怎么仿
  • 网站上的用户注册怎么做的wordpress添加cnzz
  • 网站做跳转链接的好处结构化数据 wordpress
  • 电子商务网站建设论文建设淘宝网站需要多少钱
  • 猪八戒logo设计网站宁波网络建站
  • 南京网站微信建设潍坊网站建设公司慕枫
  • 怎么通过做网站赚钱吗南京网站优化步骤
  • 不关站备案wordpress南昌百度推广公司
  • wordpress临时关站网站开发的人员
  • 网站闭关保护怎么做网站开发及设计
  • 有没有外国网站可以做兼职翻译的百度竞价推广什么意思
  • 西安网站建设制作 熊掌号昆明市最新消息
  • 网站设计计划书的内容威海互联网公司