乔智云智能建站,网站开发应注意哪些问题,wordpress价格计算,国内永久免费crm系统软件#x1f525; 21、 Kotlin 中的“open”和“public”有什么区别#xff1f;#x1f525; open 关键字的意思是“为扩展而开放” 。 类上的 open 注释与 Java 的相反 final#xff1a;它允许其他人从该类继承。 如果您不指定任何可见性修饰符#xff0c;则默认使用public 21、 Kotlin 中的“open”和“public”有什么区别 open 关键字的意思是“为扩展而开放” 。 类上的 open 注释与 Java 的相反 final它允许其他人从该类继承。 如果您不指定任何可见性修饰符则默认使用public这意味着您的声明将在任何地方可见。 如果没有明确指定其他内容则public是默认值。 22.、Kotin “const”和“val”有什么区别 consts 是编译时常量。这意味着它们的值必须在编译时分配不像vals它可以在运行时完成。 这意味着const永远不能将 s 分配给函数或任何类构造函数而只能分配给 aString或原语。 例如
const val foo complexFunctionCall() //Not okay
val fooVal complexFunctionCall() //Okay
const val bar Hello world //Also okay 23、 Kotlin List 和 Array 类型有什么区别 使用方面的主要区别在于Arrays具有固定大小而(Mutable)List可以动态调整其大小。此外Array是可变的而List不是。 此外还有kotlin.collections.List一个由 实现的接口java.util.ArrayList。kotlin.collections.MutableList当需要允许修改项目的集合时它也被扩展为使用。 在 jvm 级别Array上由数组表示。List另一方面java.util.List因为在 Java 中没有可用的不可变集合等价物所以由表示。 24、 简述Kotlin 中的 Elvis 运算符 Elvis 运算符是许多编程语言的一部分例如 Kotlin 以及 Groovy 或 C#。Elvis 运算符是省略了第二个操作数的三元运算符。 x ?: y // yields x if x is not null, y otherwise. 如果x不为空则返回。如果为 null则将y返回 。 25、请用 Kotlin 重写这段代码
你能用 Kotlin 重写这段 Java 代码吗public class Singleton {private static Singleton instance null;private Singleton(){}private synchronized static void createInstance() {if (instance null) {instance new Singleton();}}public static Singleton getInstance() {if (instance null) createInstance();return instance;}
} object Singleton 26、如何建议在 Kotlin 中创建常量 在 Kotlin 中如果你想创建应该在类中使用的局部常量那么你可以像下面这样创建它val MY_CONSTANT_1 Constants1
// or
const val MY_CONSTANT_2 Constants2
像用关键字val定义的变量是不可变的。const这里的区别在于const 用于在编译时已知的变量。还要避免使用伴随对象。在后台为可访问的字段创建了 getter 和 setter 实例方法。
调用实例方法在技术上比调用静态方法更昂贵。而是在 中定义常量objectobject DbConstants {const val TABLE_USER_ATTRIBUTE_EMPID _idconst val TABLE_USER_ATTRIBUTE_DATA data
} 27、Koltin 可以互换使用 IntArray 和 Kotlin 中的 Array 吗 Array是一个Integer[]在引擎盖下IntArray而是一个int[]。 这意味着当您将 an 放入Int中时Array它将始终被装箱特别是带有Integer.valueOf()调用。在 的情况下IntArray不会发生装箱因为它会转换为 Java 原始数组。 所以我们不能互换使用它们。 28、 阐述什么是 Kotlin double-bang (!!) 运算符 非空断言运算符 !! 将任何值转换为非 null 类型KotlinNullPointerException如果值为 null则引发异常。考虑fun main(args: Array) {var email: String?email nullprintln(email!!)
}
此运算符应在开发人员保证的情况下使用 - 它允许您 100% 确定其值不为空。 29、 函数中Unit-return的目的是什么为什么 VALUE 在那里这个价值是多少 fun printHello(name : String?) : Unit {if (name ! null)print(Hello, $name!)elseprint(Hi there!)// We dont need to write return Unit.VALUE or return, although we could
} 目的与 C 或 Java 相同void。只有 Unit 是正确的类型所以它可以作为泛型参数等传递。 为什么我们不称它为“Void”因为“void”这个词的意思是“无”还有另一种类型Nothing即“根本没有价值”即计算没有正常完成永远循环或抛出一个例外。我们无法承受意义的冲突。 为什么 Unit 有值即与 Nothing 不同因为通用代码可以顺利运行。如果您为通用参数 T 传递 Unit则为任何 T 编写的代码都需要一个对象并且必须有一个对象即 Unit 的唯一值。 如何访问 Unit 的值因为它是一个单例对象所以说Unit UNIT实际上包含有价值的信息它基本上只是意味着“完成”。它只是将信息返回给调用者即方法已完成。 30、Koltin 如何使用“apply”重构这段代码 考虑class Message(message: String, signature: String) {val body MessageBody()init {body.text message \n signature}
}
您是否看到任何可以进行的重构 重构后的结果class Message(message: String, signature: String) {val body MessageBody().apply {text message \n signature}
}