Kotlin 基础一

Kotlin 基础提升一

仅供于作为学习笔记,希望也能够给大家带来帮助,如果存在错误也请大家指正。

1.变量

val va:String = ""  //只读变量
var value:Int= 5 //可变变量
var value1 = 5 // 类型推断
var simpleNull:String?=null //可空变量

2.表达式

if…else…

when(…){…}

3.函数

1. 普通具名函数

    //缺省值  flag:Boolean = false
    //函数, 默认public
    private fun doSomething(age:Int, flag:Boolean = false)
    : String
    {
            return "result"
    }

2. 特别函数,防止调用 Java 方法关键字冲突

    fun `public`(){
        println("hahhah")
    }

3.匿名函数

    //传函数类型参数
    fun showOnBoard(goodsName: String, getDiscountWords: (String, Int) -> String) {
        val hour = (1..24).shuffled().last()
        println(getDiscountWords(goodsName, hour))
    }

    //声明匿名函数
    val blessingFunction:()->String
    blessingFunction = {
        val holidy = "new year"
        "Happy $holidy" //隐式返回
    }

4. 函数引用

    fun main() {
        showonBoard(" paper " ,::getDiscoutWords)
    }

    private  fun getDiscoutWords(goodsName: String, hour: Int) : String{
        return    "2021 年,双11$goodsName 促销倒计时: $hour 小时"
    }

    fun showonBoard(goodsName: String, getDiscountWords: (String, Int) -> String) {
        val hour = (1..24).shuffled().last()
        println(getDiscountWords(goodsName, hour))
    }

4.可空变量的操作

1.[ let ] 关键字

let 关键字使用在可空变量,当变量不为 null 时才会运行 let 函数内代码块

    var str:String? = "butterfly"
    str?.let {
        str.capitalize()
    }

2.[ !! ] 非空断言操作符

使用非空断言操作符,当调用者为空时会报错并抛出异常

    var str:String? = "butterfly"
    str!!.capitalize()

3.通过 if…else 进行判断

var str:String? = readLine()
if(str != null)
{
    str = str.capitalize()
}else {
    println("空")
}

4.空合并操作符

[ ?: ] 操作符的意思是,如果左边结果为 null,就使用右边的结果值 , 与 let 常用于代替 if…else…

    println(str ?: "JACK")

    var str:String?=""
    str = str?.let {it.capitalize() }  ?: "butterfly"

5. 异常处理

自定义异常,以及使用 try… catch…

fun main() {
    var number:Int? = null
    try {
        checkOperation(number)
        number!!.plus(1)
    }catch (e:Exception)
    {
        println(e)
    }
}

fun checkOperation(num:Int?)
{
//    num ?: throw UnskilledException()
    checkNotNull(num) { "Something is not good" } //先决条件函数,kolin内置函数
}

//自定义异常
class UnskilledException : IllegalArgumentException("操作不当")

字符串的常见操作

1.substring

const val NAME = "Jimmy's friend"
fun main() {
    val index = NAME.indexOf("'")
    val substring = NAME.substring(0, index)  //java 原型操作
    val str = NAME.substring(0 until index) // kotlin 新增range 操作

    println("$substring  $str") //输出结果   Jimmy  Jimmy
}

2.split

Split 函数返回List集合数据,List集合支持结构语法特性,允许在一个表达式里给多个变量赋值,结构常用来简化变量的赋值。

    val data = NAMES_Arr.split(",")
    val (origin,dest,proxy) = NAMES_Arr.split(",")

    println("$data , $origin,$dest,$proxy")
    //[jack, jacky, kason] , jack,jacky,kason

3.replace

// 替换字符串中的元音字母
    val str = "The people's Republic of China."
    val replace = str.replace(Regex("[aeiou]")) {
        when (it.value) {
            "a" -> "8"
            "e" -> "6"
            "i" -> "9"
            "o" -> "1"
            "u" -> "3"
            else -> it.value
        }
    } 

6.安全转换

    val num1 : Int? = "8.98".toIntOrNull()
    val num2 : Double? = "8.98".toDoubleOrNull()
    println(num1) //null
    println(num2) //8.98

    val s = "%.2f".format(8.956)
    println(s) //8.96
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值