我想知道Gosu类和增强类之间的区别。因为我们在增强功能方面可以做的一切,那么在Gosu类中可以做到的,那么Gosu增强功能又有什么需求。
答案 0 :(得分:3)
Gosu类就像Java类。 使您感到困惑的是增强功能。
增强是对象的扩展属性,可用于为其编写对象的特定对象。
例如,假设我需要编写一个函数来检查输入的数字是否大于10。
因此,使用gosu类,我们编写代码的方式就像
Class MyInteger(){
static funtion isNoGreaterThan10(no : int) : boolean{
return (no > 10)
}
}
我们将函数称为:
MyInteger.isNoGreaterThan10(34) //returns a boolean value
因此,基本上,我们编写的类和方法在我们应用程序中的任何位置都可用。这是增强功能的使用
Enhancement MyInteger : int{
funtion isNoGreaterThan10() : boolean{
return (this > 10) //"this" represents the object upon which we are calling this enhancement
}
}
以上增强功能仅适用于Integer对象。 并且此增强功能内的所有功能都成为任何整数对象的属性。
var number = 14
number.isNoGreaterThan10() //return True
通话变得更加简单
36.isNoGreaterThan10() //return True
"my_name".isNoGreaterThan10() // is not possible as "my_name" is not an integer.
类似地,让我们看一下字符串的增强功能(例如获取字符串的长度)
Enhancement MyStringEnhancement : String {
property get Length():int{
return len(this)
}
}
和属性Length()将可用于所有字符串对象。
"Hello boss".Length // returns 10
希望这会有所帮助。
Aravind:)
答案 1 :(得分:1)
在增强功能中,不允许定义任何变量(记录无更改)。因此,增强应仅用于简单的聚合计算。增强的优点是新方法在实体中可见。如果您在Gosu类别中定义,则必须知道类别名称。
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以将其假定为对象的扩展属性(在您要执行的对象或属性之上进行微调操作)