首页 > 其他分享 >AngleScript语法

AngleScript语法

时间:2024-05-11 18:20:27浏览次数:24  
标签:AngleScript int void 语法 func print DoSomething2 DoSomething1

 

Class的使用要继承于Interface或者Mixin class.Mixinclass实际上就是类似于抽象类 ,它已经实现的,在子类里面不能实现,类似如下代码:

  

interface AInterface
{
	void DoSomething1();
	void DoSomething2();
}
//如果不用mixin 那么必须实现该接口的所有函数
mixin class ABase : AInterface
{
	
	void DoSomething1(){ print("DoSomething1 from ABase\r\n");}
	int data= 1;
}

class AChild : ABase
{
	//下面这一行如果实现会覆盖mixin类的函数
	//void DoSomething1(){ print("DoSomething1 from AChild\r\n");}
	void DoSomething2(){ print("DoSomething2 from AChild\r\n");}
}
class AChildC : AChild
{

	//该函数会覆盖父类的DoSomething
	void DoSomething2(){  
	//this.data = 23;
	//super::data = 33;
	
	//ABase::DoSomething1();	//报错无法访问
	AChild::DoSomething2();
	super.DoSomething2();
	print("DoSomething2 from AChildC\r\n");
	}
}

void main()
{
	print("hello");
	AChildC a;
	a.DoSomething1();
	a.DoSomething2();
}

 对于常用方式以上就够用。

还有几个要说明的:

object@ obj_h;//声明了一个指针为空,  object obj;//这样就可以你直接初始化,类似于c++ 

调用的时候不支持->而是通过"obj_h."的方式运行

 

函数对象:

  funcdef bool CALLBACK(int, int);
     A a;

    // Create the delegate for the A::Cmp class method
    CALLBACK @func = CALLBACK(a.Cmp);
  func(1,2);//这里直接调用
 字符串处理
void PrintFromCommon()
{
	print("Common\r\n");
	int b;
	b = 2;
	int c = 4;
	string str = b+c;
	string ss;
	ss += b;
	ss+= c;
	print(ss);
}

  如果要引用其他地方的as那么 #include"common.as",即可

反射和序列化,

 

lambda:

 bool result1 = func(valueA, valueB, function(a,b){ return a == b; });
 funcdef void A(int);
  funcdef void B(float);
  void func(A@) {}
  void func(B@) {}

  void main()
  {
    // Explicitly specify the type to tell the compiler that A is wanted
    func(function(int a) {});
  }

  

 

标签:AngleScript,int,void,语法,func,print,DoSomething2,DoSomething1
From: https://www.cnblogs.com/yang131/p/18186883

相关文章

  • __asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法 AT&T ASM Syntax
    1Overview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇......
  • (非原创)Stable Diffusion 提示词prompt tag语法总结
    基本认知提示词会相互污染,要尽可能地做减法。XL版本主推使用自然语言使用注释将修饰词汇限定给某个主体,避免提示词污染1girl(silverlonghair,purpleeyes),yellowsuit2people(1girlAND1boy)2characters(1girlAND1dog)权重调整旧语法:(){}加大权重,[]......
  • markdown latex语法
    LaTex上标/下标$a_2$$a^2$attent:如果上下标的内容超过一个字符,则需要用花括号{}包裹,否则上下标只对后面的一个符号起作用下标:$a_2$上标:$a^2$大于等于$\geqslant$$\leqslant$大于等于:$\geqslant$小于等于:$\leqslant$希腊字母命令显示命令显示\alp......
  • lua~基本语法
    学习Lua的必要性nginx开发apisix,kong插件开发语言特点语句结束没有分号跟JavaScript很像默认定义的是全局变量,定义局部变量需要加local关键字数组索引从1开始没有i++操作符号,只能i=i+1注释单行注释--注释内容多行注释--[[注释......
  • docker的一些命令 以及dockerFile语法
    文件夹重新命名mvnode-v14.18.1-linux-x64node-v14.18.1dokcer命令 将linux的文件复制到docker容器里面       dockercp/usr/local/node-v14.18.1/8ec26052dfad:/usr/local/node-v14.18.1将docker容器里面的文件复制到linux       dockerc......
  • vue学习--模板语法(五、选项卡案例)
    案例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><scriptsrc="https://cdn.j......
  • vue学习--模板语法(四、属性样式绑定&流程语句)
    目录3.5属性绑定1.Vue如何动态处理属性?2.v-model的底层实现原理分析3.6样式处理1.class样式处理2.style样式处理3.7分支循环结构1.分支结构2.v-if与v-show区别3.循环结构3.5属性绑定1.Vue如何动态处理属性?v-bind指令用法<av-bind:href='url'>跳转</a>缩写形式<a......
  • Springboot - [06] yaml语法讲解
    Yaml是一种标记语言,Yaml也不是一种标记语言。 一、yaml写法示例application.yaml#普通的key-valuename:harleyserver.port:8081#对象student:name:harleyage:25#对象的行内写法student:{name:harley,age:25}#数组pets:-cat-......
  • mysql基本语法
    1.DDLDataDefinitionLanguage,数据定义语言,用来定义数据库对象(数据库,表,字段)。 1.1数据库操作查询所有数据库showdatabases;查询当前数据库selectdatabase();创建数据库createdatabase[ifnotexists]数据库名[defaultcharset字符集][col......
  • Vue2进阶语法
    Vue进阶语法【一】v-model修饰符v-model:针对input标签实现数据双向绑定#lazy:等待input框的数据绑定失去焦点之后再变化#number:数字开头,只保留数字,后面的字母不保留;字母开头,都保留#trim:去除首尾的空格<body><divid="app"><h1>v-model进阶</h1><p>普通<......