[英]Gosu class vs enhancement
我想知道 Gosu 类和增强之间的区别。 因为无论我们在增强中可以做什么,我们在 Gosu 类中也可以做的,那么 Gosu 增强的需要是什么。
Gosu 类就像一个 Java 类。 令您困惑的是增强功能。
增强是 OBJECT 的扩展属性,可用于为其编写的特定对象。
例如,假设我需要编写一个函数来检查输入的数字是否大于 10。
所以使用 gosu 类,我们如何编写代码就像
Class MyInteger(){
static funtion isNoGreaterThan10(no : int) : boolean{
return (no > 10)
}
}
我们调用函数如下:
MyInteger.isNoGreaterThan10(34) //returns a boolean value
所以基本上,我们编写的类和方法在我们的应用程序中的任何地方都可用。 这里是使用Enhancement
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
希望这可以帮助。
阿拉文 :)
在增强中,不允许定义任何变量(日志记录无更改)。 因此,增强应该仅用于简单的聚合计算。 增强的优点是新方法从实体中可见。 如果在 Gosu 类中定义,则必须知道类名。
您可以将其视为对象的扩展属性(在您希望执行的对象或属性之上的微调操作)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.