Tag: 常量

“const”和“val”有什么区别?

我最近读了关于const关键字,我很困惑! 我无法找到它和val关键字之间的任何区别,我的意思是我们可以使用它们来创建一个不可变的变量,还有什么我失踪?

高效的交换机需要自我资格?

显然, when表达式根据一个表示常量的不同而编译when object SwitchOverConstants { val foo = 1 val bar = 2 val baz = 3 fun one(x: Int) = when (x) { foo -> "foo" bar -> "bar" baz -> "baz" else -> "else" } fun two(x: Int) = when (x) { SwitchOverConstants.foo -> "foo" SwitchOverConstants.bar -> "bar" SwitchOverConstants.baz -> "baz" else -> […]

Kotlin:是否有可能有一个恒定的属性依赖于实现泛型?

我有以下abstrac基类 abstract class Vec2t<T : Number>(open var x: T, open var y: T) { companion object { val SIZE = 2 * when (/** T instance type */) { is Byte, is Ubyte -> 1 is Short, is Ushort -> 2 is Int, is Uint, is Float -> 4 is Long, is Ulong, is Double […]

Java类名中的Kotlin中的静态常量

我通常在Java中有这个: package some.package; public class Clz { public static final String ACTION_DIVE = Clz.class.getName() + ".action.DIVE"; } 可以从Clz.ACTION_DIVE以外的类访问,值为"some.package.Clz.action.DIVE" 。 我怎么能在Kotlin class Clz做同样的Clz以便可以从外部的Java类以相同的方式访问它? 我尝试了以下,但它不编译,因为它不是一个常量: package some.package object Clz { const val ACTION_DIVE = Clz.javaClass.name + ".action.DIVE" }

java静态最终在kotlin:Const'val'初始化应该是一个常数值

在Java中,我们可以这样做: public class TestA { public static final boolean flag = true; public static final String str = flag ? "A" : "B"; // ok } 但是不能在Kotlin class TestA { companion object { const val flag = true const val str = if (flag) "A" else "B" //err: Const 'val' initializer should be a constant […]