Kotlin第一次亲密接触

xiaoxiao2021-02-28  57

首先推荐一个使用与Android开发者学习kotlin的教程点击进入github阅读

基本数据 var : 是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和java中声明变量的方式一样。 val: 是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。数字类型中不会自动转型: val i:Int=7 //定义一个变量 val d: Double = i.toDouble()字符(Char)不能直接作为一个数字来处理。在需要时我们需要把他们转换为 一个数字: val c:Char=‘c’ val i: Int = c.toInt() //将c转化成int类型位运算也有一点不同。在Android中,我们经常在 flags 中使用“或”,所以我 使用"and"和"or来举例: // Java int bitwiseOr = FLAG1 | FLAG2; int bitwiseAnd = FLAG1 & FLAG2; //Kotlin val bitwiseOr = FLAG1 or FLAG2 val bitwiseAnd = FLAG1 and FLAG2 定义一个类 如何定义一个类,使用关键字:class 如果需要只需要在类名后面加上参数,如果这个类什么都没有,可以省区大括号: //如何类没有内容,那么就不用大括号,如果这个类需要被继承,那么需要声明open //(var name: String, var age: Int, var sex: String) 为这个类的构造方法 open class Person(var name: String, var age: Int, var sex: String)

例如

如何继承一个类,所有类都默认继承Any(相当于java中的object 类),我们可以继承其他类,所有类都默认不可以继承,除非它声明open或者abstract。函数:如果一个函数你没有定义它的返回值,那么它默认返回Unit,与java的void类似,但是Unit是一个对象,函数的返回值也可以指定其他类型。 函数的返回结果也可以用一个表达式表示出来。例如,下面两个函数的结果是一样的

fun add(x: Int, y: Int) : Int { return x + y } fun add(x: Int,y: Int) : Int = x + y

匿名函数: //需要用一个变量来接收这个函数 var sum = fun(x: Int, y: Int) = x + y println(sum(1, 2))

kotlin的方法的参数和java不一样,kotlin先写参数名,再定义参数类型。例如上面的例子,定义返回类型也是方法后面后面加 :类型

类的属性:在java中,属性可以通过getter和setter

继承: Anko是一个强大的类库,主要目的是用来代替以前XML的方式来使用代码生成UI布局,类似于Java的黄油刀 比较运算符:

==:比较的是值 相当于java的equals ===:比较的是引用和值,判断两个对象是否引用的同一个

拼接字符串

val a: Int = 5 val b: Int = 6 println("打印信息$a+$b=${a + b}") //输出结果:5+6=11

“”" :三个引号表示将字符串原封不动的内容打印出来

val a: String = """ _(\_/) ,((((^`\ (((( (6 \ ,((((( , \ ,,,_ ,((((( /"._ ,`, ((((\\ ,... ,(((( / `-.-' ))) ;' `"'"'""(((( ( ((( / ((( \ )) | | (( | . ' | )) \ _ ' `t ,.') ( | y;- -,-""'"-.\ \/ ) / ./ ) / `\ \ |./ ( ( / /' || \\ //'| || \\ _//'|| || )) |_/ || \_\ |_/ || `'" \_\ `'" """ println("打印出结果:$a")

空类型

// ?问号表示可能返回空,如果返回空则返回null,不会抛异常 fun getNull(): String? { return null } fun test() { // ?.表示可能为空,如果为空,则返回null,如果不为空则为length println(getNull()?.length) // !!. 代表我表示getNull的值肯定不为空,放心用吧,但是如果为空就会抛异常 println(getNull()!!.length) }

智能转换

val person = Person(name, age, sex) //is相当于java的instanceof if (person is WoMan) { println(person.testThressMark()) } //as表示将Person强制转化为WoMan,如果转化失败则抛异常 val person: WoMan = Person(name, age, sex) as WoMan // 加?表示如果如果Person转化为WoMan失败,则返回空,不抛异常 val person: WoMan ?= Person(name, age, sex) as? WoMan
转载请注明原文地址: https://www.6miu.com/read-2622479.html

最新回复(0)