val 和 var 有什么区别?
var就像一个通用变量,可以多次赋值,在 Kotlin 中被称为可变变量。而val是一个常量变量,只能被初始化一次,在 Kotlin 中被称为不可变变量。

val 和 const val 有什么区别?
constval都表示不可变和只读值,并在 java 中充当final关键字。val关键字必须用于声明运行时值,而const关键字必须用于声明编译时值。

MutableLiveData 中的 setValue() 和 PostValue() 有什么区别?
setValue()方法必须从主线程调用。但是如果你需要从后台线程中设置一个值,postValue()应该使用。

伴生对象和对象有什么区别?加载类时初始化伴随对象。但是Object默认是惰性初始化的——在第一次访问时。

安全调用(?。)和非空断言(!!)之间的区别?
安全调用运算符 (?.) 用于确保即使您持有的变量引用为空,您的应用程序也不会崩溃。

var 变量:字符串?=空
变量?.replace(“x”,“z”)

请注意,我们没有初始化上面的变量,但它不会抛出 NullPointerException,因为使用了安全调用运算符。

但是在非 Null 断言的情况下,如果您在其引用上调用任何方法,它将抛出 KotlinNullPointerException。

== 运算符和 === 运算符之间的区别?
==运算符用于比较变量的值,但运算===符用于检查变量的引用是否相等。
在原始类型的情况下,===运算符还检查值而不是引用。
请注意,在原始数据类型的情况下,两者都会产生相同的结果。https://medium.com/media/482d88d7985d91cdad47e8a88103c021

Kotlin 中的访问/可见性修饰符
四种类型的访问修饰符

  • protected:在该特定类或文件中可见,并且在声明它的特定类的子类中可见。
  • private:在包含声明的特定类或文件中可见。
  • internal:在该特定模块中的任何地方都可见。
  • 公开:对所有人可见。

注意:默认情况下,Kotlin 中的可见性修饰符是public

Kotlin 中的扩展函数是什么?
扩展函数
提供了一个选项,可以在不继承类的情况下向类“添加”方法。创建的扩展函数用作该类中的常规函数​​。请参见下面的示例:https://medium.com/media/bf40ee773b0acb81b883cb2164acc582

现在,您可以直接在其引用上对任何类型的视图调用相同的方法。例如 textView.hideView()

什么是内联函数?
内联函数指示编译器在代码中使用该函数的任何位置插入完整的函数体。要使用内联函数,您只需在函数声明的开头添加一个内联关键字即可。

Kotlin 中的作用域函数是什么?
作用域函数是在对象的上下文中执行代码块的函数。kotlin 中有五个作用域函数:letrunwithalsoapply。

作用域函数因返回的结果而异:

  • applyalso返回上下文对象。因此它们可以用于在它们之后链接同一对象上的函数调用。它们也可以用于函数的返回语句
  • letrun, 并with返回 lambda 结果。

kotlin 中的密封类是什么?
密封类与类类似enum:枚举类型的值集也受到限制,但每个枚举常量仅作为单个实例存在,而密封类的子类可以有多个实例,每个实例都有自己的状态。

要声明密封类或接口,请将sealed修饰符放在其名称之前:https://medium.com/media/36d923f39ed70791bd4cf8daa7033eee

密封类本身是抽象的,不能直接实例化,可以有abstract成员。

注释的意义:@JvmStatic、@JvmOverloads 和 @JvmFiled 在 Kotlin 中的意义是什么?
-> @JvmStatic:该注解用于告诉编译器该方法是静态方法,可以在Java代码中使用。
-> @JvmOverloads:使用 Java 代码中 Kotlin 代码中作为参数传递的默认值。
-> @JvmField:从 Java 代码访问 Kotlin 类的字段,而不使用任何 getter 和 setter。

什么是中缀函数?
中缀函数用于在不使用任何括号或圆括号的情况下调用该函数。您需要使用中缀关键字才能使用中缀功能。

在 kotlin中切换时有什么优势?
它比传统的交换机更简洁、更强大。when 既可以用作表达式,也可以用作语句。

Kotlin 中的主要和次要构造函数是什么?
Primary Constructor
在类头中初始化,在类名之后,使用constructor关键字。参数在主构造函数中是可选的。
主构造函数不能包含任何代码,初始化代码可以放在一个单独的初始化块中,以init关键字为前缀。

二级构造函数——Kotlin 可能有一个或多个二级构造函数。辅助构造函数允许初始化变量并允许为类提供一些逻辑。它们以构造函数关键字为前缀。

什么是高阶函数?
高阶函数是将函数作为参数或返回函数的函数。


0
分类: 未分类

bayshier

愿世间每个美好的灵魂都能被温柔以待

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注