kotlin基础知识

val(value的简写)用来声明一个不可变的变量。(只读变量)

var(variable的简写)用来声明一个可变的变量。(可读写变量)

在变量声明中指定数据类型时,应在冒号后面添加一个空格。

先声明变量在声明变量的类型。 val a :Int = 10

kotlin拥有类型推导机制,变量类型可以省略不写   (val a =10),如果对变量延迟赋值,就无法自动推导类型,需要显式地声明变量。

kotlin全部使用对象数据类型,完全抛弃了java的基本数据类型,例如在java中int是关键字,在kotlin中Int是一个类。

kotlin每个语句都应单独占一行。结尾不用加分号;

if语句可以有返回值,返回值是if语句每一个条件中最后一行代码的返回值
val isSuccessful = true
val responseResult = if (isSuccessful) "登录成功"else "登录失败!"

when表达式
fun getScore(name: String) = when(name) {
    "Tom" -> 86
    "Jerry" -> 7
    else -> 0
}
when语句允许类型匹配
fun checkNumber(num: Number){
    when(num){
        is Int -> println("num is Int")
        is Double -> println("num is Double")
        else -> println("num not support")
    }
}
when语句可以不传参数 kotlin判断字符串或对象是否相等可以直接使用 == 关键字
fun getScore(name: String) = when {
    name.startWith("N") -> 100
    name == "Tom" -> 86
    name == "Jerry" -> 7
    else -> 0
}

..是创建两端闭区间的关键字   val range = 0 .. 10  表示[0,10],
fun main(){
    for(i in 0 .. 10){
        println(i)
    }
}


until关键字可以创建左闭右开的区间,step关键字改变循环的变化量。
fun main(){
    for(i in 0 until 10 step 2){
        println(i)
    }
}
// 0 2 4 6 8

降序区间使用downTo关键字
fun main(){
    for(i in 10 downTo 1){
        println(i)
    }
}

kotlin实例化不需要new 关键字   val p = Person()

kotlin中任何一个非抽象类默认不可被继承,在类前加open关键字可以被继承

open class Person(){  ...  }

kotlin继承、实现统一使用冒号  interface Study{ ... }

class Student : Person(),Study{ ... }

kotlin中public修饰符是默认项,protected在kotlin中表示只对当前类和子类可见,kotlin抛弃java中的default使用internal修饰符,表示只对同一模块中的类可见。

kotlin中数据类中只需要使用data关键字即可,toString()等固定方法自动生成

data class Cellphone(val brand: String,val price: Double)

kotlin中将class关键字改为object关键字即可创建一个单例类,不需要私有化构造函数,可以直接在类中编写需要的函数。

object Singleton{
    fun singletonTest(){
        ...
    }
}

//不可变集合
val list = listOf("Apple","Pear","Grape")
//可变集合
val list = mutableListOf("Apple","Pear")
list.add("Grape")

Set集合和List集合用法一致,创建方式替换为setOf()和mutableSetOf()

val map = HashMap<String,Int>()
map["Apple"] = 1  //添加
map["Banana"] = 2
val number = map["Apple"]  //读取
//也可以使用mapOf()和mutableMapOf()直接传入
val map = mapOf("Apple" to 1,"Banana" to 2)
// val d2 : Double = null //非可空类型,不能赋值为null,编译不通过
val d3 : Double? = null //可空类型,能赋值为null,编译通过

//可空类型 > 非可空类型
//为空类型:1.可以存null值。2.可以存正常值。
//非可空类型:1.只能存正常值。
var d4 : Double = 6588776.7
var d5 : Double? = nu11
// d4 = d5//编译不通过,非可空类型 不能 接收 可空类型
// d5 = d4//编译通过 可空类型 可以 接收 非可空类型
// d4 = d5 编译不通过的解决方案
if (d5 != nu11) d4 = d5

//kotlin推荐显式转换
val intValue = 666
val longValue : Long = intValue .toLong()
?. 操作符表示 对象不为空时正常调用,对象为空时什么都不做
a?.doSomething()
?: 操作符左右两边接收一个表达式,如果左边结果不为空则返回左边的结果,否则返回右边的结果
val c = a ?: b
kotlin支持字符串内嵌表达式
"hello, ${obj.name}.nice to meet you!"
//仅有一个变量时可以将大括号省略
"hello, $name.nice to meet you!"
给函数设定参数默认值
fun printParams(num: Int = 100,str: String){
    println("num is $num, str is $str")    
}

fun main(){
    printParams(str = "world" ,num = 123)  //可以通过键值对传参
}

相关推荐

  1. kotlin基础知识

    2024-05-14 15:12:03       30 阅读
  2. kotlin 基础

    2024-05-14 15:12:03       18 阅读
  3. KotlinKotlin基本数据类型

    2024-05-14 15:12:03       40 阅读
  4. Android : Kotlin 基础 入门

    2024-05-14 15:12:03       61 阅读
  5. Kotlin基础语法

    2024-05-14 15:12:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-14 15:12:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-14 15:12:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-14 15:12:03       87 阅读
  4. Python语言-面向对象

    2024-05-14 15:12:03       96 阅读

热门阅读

  1. 电商选品的数据是可以用爬虫进行采集的吗?

    2024-05-14 15:12:03       26 阅读
  2. js 正则校验合集

    2024-05-14 15:12:03       30 阅读
  3. Selenium

    2024-05-14 15:12:03       27 阅读
  4. 11_进程管理和SELinux

    2024-05-14 15:12:03       26 阅读
  5. python进阶的学习路径

    2024-05-14 15:12:03       32 阅读
  6. @PostMapping和@GetMapping的区别

    2024-05-14 15:12:03       32 阅读
  7. 前端面试题大合集4----框架篇(React)

    2024-05-14 15:12:03       31 阅读
  8. react18+ts如何生成二维码并且下载

    2024-05-14 15:12:03       37 阅读
  9. Kibana初始化启动失败原因及解决办法

    2024-05-14 15:12:03       38 阅读
  10. Day38 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯

    2024-05-14 15:12:03       32 阅读
  11. 瑞鹤仙——熊市出英雄

    2024-05-14 15:12:03       27 阅读