System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,特别涉及一种软件系统切换的方法和装置。
技术介绍
1、随着计算机技术的不断发展,技术人员所能使用的编程语言也越来越多。目前,这些编程语言主要分为基于原型的编程语言和基于类的编程语言。
2、基于原型的编程语言由于编写方便、部署便捷等优点,而得到广泛使用。但是,基于原型的编程语言执行效率不高、且维护成本较高,而基于类的编程语言则执行效率更高、维护成本更低。因此,目前亟需一种方法能够将基于原型的编程语言的代码转换成基于类的编程语言的代码。
技术实现思路
1、本公开提供了一种代码转换的方法和装置,可以将基于原型的编程语言的代码转换成基于类的编程语言的代码,相应的技术方案如下:
2、第一方面,提供了一种代码转换的方法,方法包括:识别第一代码中的原对象,其中,第一代码是基于原型的编程语言的代码。在确定原对象满足类生成条件的情况下,在第二代码中生成原对象对应的类,其中,第二代码是基于原型的编程语言的代码。在对象对应的类中,定义对象中定义的方法。
3、在本公开提供的方案中,识别基于原型的编程语言的代码中的原对象,如果原对象满足类生成条件,则在基于类的编程语言的代码中生成该原对象对应的类,并在该对象对应的类中,实现该对象中定义的方法。这样,便实现了将基于原型的编程语言的代码转换为基于类的编程语言的代码。
4、在一种可能的实现方式中,类生成条件可以包括:
5、如果确定原对象中定义有方法,则确定原对象满足类生成条件,在第二代码
6、对于原对象中定义有方法的情况,说明原对象为复杂对象,所以可以在第二代码中生成其对应类。
7、在一种可能的实现方式中,类生成条件可以包括:
8、如果确定原对象有原型对象,则确定原对象满足类生成条件,在第二代码中生成原对象对应的类。
9、对于原对象有原型对象的情况,说明原对象为复杂对象,所以可以在第二代码中生成其对应类。
10、在一种可能的实现方式中,类生成条件可以包括:
11、如果确定原对象为所述第一代码中其他原对象的原型对象,则确定原对象满足类生成条件,在第二代码中生成原对象对应的类。
12、对于原对象有原型对象的情况,说明原对象为复杂对象,所以可以在第二代码中生成其对应类。
13、在一种可能的实现方式中,为了实现基于原型的编程语言中对对象动态添加字段的特性,在本公开提供的方案中,可以通过map的形式,在基于类的编程语言的代码中实现该特性。相应的,处理可以如下:
14、在原对象对应的类中,创建映射表map,通过map,存储原对象中的字段。
15、在一种可能的实现方式中,在原对象对应的类中,可以定义获取函数,用来在原对象对应的map中读取字段。
16、在一种可能的实现方式中,为了实现基于原型的编程语言中根据原型链读取字段的特性,在本公开提供的方案中,可以通过上述获取函数,来实现该特征。相应的,处理可以如下:
17、在识别到第一代码中包括第一原对象和第二原对象,且第二原对象是第一原对象的原型对象的情况下,在第一原对象对应的类对象中读取字段时,调用第一原对象对应类中定义的获取函数,在第一原对象对应的类中的第一map(也即是第一原对象对应的类对象的map)读取第一字段,如果在第一map中未读取到第一字段,则调用第二原对象对应的类中定义的获取函数,在第二原对象对应的类中的第二map读取第一字段。
18、在一种可能的实现方式中,为了实现基于原型的编程语言中对对象动态添加字段的特性,在本公开提供的方案中,在原对象对应的类中,定义设置函数,用来在map中添加或修改字段。
19、在一种可能的实现方式中,在需要在原对象对应的类对象中添加字段时,调用原对象对应的类中定义的设置函数,在原对象对应的类中的map中,添加第二字段。
20、类对象即为对类的实例,可以通过对类进行实例化得到,类对象中包括类中定义的全部内容。
21、在一种可能的实现方式中,为了实现基于原型的编程语言中原型对象的特征,在本公开提供的方案中,在原对象对应的类中,定义原型设置函数,用来设置原对象对应的类对象的原型对象。原对象对应的类对象的原型对象,即为原对象的原型对象的类对象。
22、在一种可能的实现方式中,在确定原对象不满足类生成条件的情况下,说明该原对象只包含一些字段,属于简单对象,在本公开提供的方案中,在第二代码中创建原对象对应的map,将原对象中的字段,写入原对象对应的map。
23、第二方面,提供了一种代码转换的装置,所述装置包括:
24、识别模块,用于识别第一代码中的原对象,其中,所述第一代码是基于原型的编程语言的代码;
25、生成模块,用于在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,其中,所述第二代码是基于原型的编程语言的代码;
26、定义模块,用于在所述对象对应的类中,定义所述对象中定义的方法。
27、在一种可能的实现方式中,所述生成模块,用于:
28、如果确定所述原对象中定义有方法,则确定所述原对象满足类生成条件,在第二代码中生成所述原对象对应的类。
29、在一种可能的实现方式中,所述生成模块,用于:
30、如果确定所述原对象有原型对象,则确定所述原对象满足类生成条件,在第二代码中生成所述原对象对应的类。
31、在一种可能的实现方式中,所述生成模块,用于:
32、如果确定所述原对象为所述第一代码中其他原对象的原型对象,则确定所述原对象满足类生成条件,在第二代码中生成所述原对象对应的类。
33、在一种可能的实现方式中,所述生成模块,还用于:
34、在所述原对象对应的类中,创建映射表map;
35、通过所述map,存储所述原对象中的字段。
36、在一种可能的实现方式中,所述定义模块,还用于:
37、在所述原对象对应的类中,定义获取函数,其中,所述获取函数用于在所述map中读取字段。
38、在一种可能的实现方式中,所述识别模块,用于:
39、识别所述第一代码中的第一原对象和第二原对象,其中,所述第二原对象是所述第一原对象的原型对象;
40、所述装置还包括调用模块,用于:
41、调用所述第一原对象对应类中定义的获取函数,在所述第一原对象对应的类中的第一map读取第一字段,如果在所述第一map中未读取到所述第一字段,则调用所述第二原对象对应的类中定义的获取函数,在所述第二原对象对应的类中的第二map读取所述第一字段。
42、在一种可能的实现方式中,所述定义模块,还用于:
43、在所述原对象对应的类中,定义设置函数,其中,所述设置函数用于在所述map中添加或修改字段。
<本文档来自技高网...【技术保护点】
1.一种代码转换的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
3.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
4.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述识别第一代码中的原对象,包括:
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.根据权利要求5-7中任一项所述的方法,其特征在于,所述方法还包括:
11.根据权利要
12.一种代码转换的装置,其特征在于,所述装置包括:
13.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
14.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至10任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至10任一项所述的方法。
...【技术特征摘要】
1.一种代码转换的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
3.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
4.根据权利要求1所述的方法,其特征在于,所述在确定所述原对象满足类生成条件的情况下,在第二代码中生成所述原对象对应的类,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述识别第一代码中的原对象,包括:
8.根据权利要求5-7中任一项所述的方法...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。