在 Kotlin 中对变量使用“m”前缀

2022-09-02 20:06:25

在编程中使用“m”前缀作为变量名称变得很常见,主要是在Android中,但是自从Kotlin到来后,这个小事情让我有点困扰。

设置和获取带有“m”前缀的变量似乎并不好,因为在Java中,我们创建(并命名)我们的setter和getters,所以我们可以省略“m”,但这在Kotlin中不会发生,除非我们走在约定的反面并重复Java的技术。

爪哇岛:

public class Foo {
    private String mName;

    public void setName(String name) {
        mName = name;
    }

    public String getName() {
        return mName;
    }
}

public class Main {
    public static void main(String[] args) {
        Foo foo = new Foo();
        foo.setName("Foo");
    }
}

Kotlin:

data class Foo(val mName: String)

fun main(args: Array<String>) {
    val foo = Foo()
    foo.mName = "Foo"  // "m" prefix doesn't fit
}

我们该怎么办?是否有新的公约要遵循?


答案 1

来自安卓的良好参考

https://developer.android.com/kotlin/style-guide#naming_2

除非在支持属性的情况下,否则不使用特殊前缀或后缀,如示例name_、mName、s_name和 kName 中看到的前缀或后缀(请参阅“支持属性”)。


答案 2

根据 Android Kotlin 风格指南

除非在支持属性的情况下,否则不使用特殊前缀或后缀,如示例 、 、 和 中所示的前缀或后缀(请参阅“支持属性”)。name_mNames_namekName

因此,您不应该在 Kotlin 中对变量使用“m”前缀。