首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gosu类vs增强

Gosu类vs增强
EN

Stack Overflow用户
提问于 2018-08-18 15:09:24
回答 4查看 1.8K关注 0票数 1

我想知道Gosu类和增强类之间的区别。因为无论我们在增强中能做什么,我们也可以在Gosu类中做什么,那么Gosu增强的需求就是什么。

EN

回答 4

Stack Overflow用户

发布于 2018-08-19 10:06:07

Gosu类就像Java类一样。让你困惑的是它的增强功能。

增强是对象的扩展属性,可用于为其编写的特定对象。

例如,假设我需要编写一个函数来检查输入的数字是否大于10。

所以使用gosu类,我们如何编写代码就像这样

代码语言:javascript
复制
Class MyInteger(){
    static funtion isNoGreaterThan10(no : int) : boolean{
      return (no > 10) 
    }
}

我们像这样调用这个函数:

代码语言:javascript
复制
MyInteger.isNoGreaterThan10(34) //returns a boolean value

所以基本上,我们编写的类和方法在我们的应用程序中的任何地方都是可用的。下面是增强功能的用法

代码语言:javascript
复制
Enhancement MyInteger : int{
       funtion isNoGreaterThan10() : boolean{
          return (this > 10) //"this" represents the object upon which we are calling this enhancement
        }
}

上述增强功能仅适用于Integer对象。并且此增强中的所有函数都将成为任何整数对象的属性。

代码语言:javascript
复制
var number = 14
number.isNoGreaterThan10() //return True

调用变得更简单,如

代码语言:javascript
复制
36.isNoGreaterThan10() //return True

"my_name".isNoGreaterThan10() // is not possible as "my_name" is not an integer.

类似地,让我们看看对字符串的增强(比如获取字符串的长度)

代码语言:javascript
复制
Enhancement MyStringEnhancement : String {
  property get Length():int{
    return len(this)
  }
}

属性Length()将可用于所有字符串对象。

代码语言:javascript
复制
"Hello boss".Length // returns 10

希望这能有所帮助。

Aravind :)

票数 4
EN

Stack Overflow用户

发布于 2018-09-20 16:21:24

在增强中,不允许定义任何变量(不更改日志记录)。因此,增强功能应该仅用于简单的聚合计算。增强的好处是新方法在实体中是可见的。如果你在Gosu类中定义,你必须知道类名。

票数 1
EN

Stack Overflow用户

发布于 2019-02-03 01:49:20

在这里找到不同之处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51906204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档