【问题标题】:Is it clearer to always use "this" or only when necessary? [duplicate]始终使用“this”还是仅在必要时使用是否更清楚? [复制]
【发布时间】:2011-08-22 02:39:16
【问题描述】:

可能重复:
Java - when to use 'this' keyword

一些开发人员喜欢在引用对象的方法和属性时总是使用“this”,即使在不需要时也是如此。这是一个非常简单的例子:

public class Foo {

    private String id;

    public Foo() {
        this.id = "123456789";
    }

}

始终使用“this”还是仅在必要时使用是否更清楚?有没有什么情况下你应该一直使用它?

【问题讨论】:

标签: java


【解决方案1】:

我从未在 C++ 或 Java 中使用多余的 this 的地方工作过。如果你保持你的函数简短,那么区分什么是成员变量和什么不是成员变量并不难,而且通常并不重要。对我来说,它属于不重复自己的原则,这与我们有命名空间的原因相同,所以我们不需要真正的长变量名称(ReallyReallyLongVariableNamesUnlessWeLikeThem)。

我猜这是强制语言的风格继承,比如 perl 和 python。

【讨论】:

    【解决方案2】:

    这纯粹是个人喜好和风格的问题。一些程序员发现总是使用显式的this 有助于提高可读性,而另一些程序员发现它会使代码变得混乱而没有增加价值。

    许多公司编码指南会指定是否应使用this,因此在这种情况下您应该努力遵守该指南。如果您正在进行的项目是供个人使用的,那么是否使用显式 this 完全取决于您自己的偏好。

    回答“在任何情况下您应该始终使用this?”您应该在需要避免歧义时使用它,例如,如果范围内有另一个具有相同名称的变量。特别是,在 java 中,构造函数参数与类的字段具有相同的名称是很常见的,然后分配给this.field = field

    【讨论】:

      【解决方案3】:

      生成的代码没有区别。所以使用取决于公司开发指南或个人喜好。

      它可以帮助识别什么是成员变量,什么不是,它也有助于使用 this-> 因为 ide 或编辑器可以更好地完成代码(取决于编辑器的年龄)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-02
        • 2012-10-23
        • 2023-03-18
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多