Kotlin 基础学习笔记(一)

1. Kotlin 语言特点

    1. 全面支持 Lambda表达式

    2. 数据类(Data classes)

    3. 函数字面量和内联函数

    4. 函数拓展

    5. 空安全

    6. 智能转换

    7. 字符串模板

    8. 主构造函数

    9. 类委托

    10. 类型推断

    11. 单例

    12. 声明点变量

    13. 区间表达式

2. Kotlin 函数加强

2.1 函数格式

    fun 函数名(参数名:参数类型):返回值类型 {

    }

3. 字符串模板

    fun writeDairy(placeName: String): String 
    {
        var story = """
        你好,我要去 ${placeName},${placeName.length}个大字
        """
        return story
    }

4. 字符串比较

4.1 正常比较

	var str1 = "story"
	var str2 = "stroy"

	str1 == str2, 进行的是 值对比,非内存地址对比,等价与 str1.equal(str2)

4.2 忽略大小写比较

String?.equals(other: String?, ignoreCase: Boolean = false) 

    var str1 = "hello"
    var str2 = "world"
    // 忽略大小写
    println(str1.equals(str2, true))

5. Kotlin的空值处理

5.1 null在Kotlin中的意义

        null也是值,表示没有东西,没有数据

5.2 Kotlin中的 ? 和 !!

        ? 表示当前对象可以为空,即可以 = null, !! 表示当前对象不为空的情况下执行

    // 接收一个参数,参数是非空的String类型
	e.g. fun heart(str: String):String {

		return "热" + str
	}

	// 加上问号代表的是参数可以为空
	fun writeDairy(placeName: String?): String {}

6. When值表达式

        跟java的 switch表达式差不多

	fun gradeStudent(score: Int) :Unit {
		when (score) {
			10 -> println("满分")
			9 -> println("干的不错")
			else -> println("需要加油")

		}
	}

7. Loop 和 Range

7.1 区间

	// 代表从1 到 100 的数组
	var nums = 1 .. 100 // [1, 100] 前后都是闭区间

	var nums = 1 until 100 // [1, 100) 前闭后开

7.2 步长

    for (num1 in nums step 2) { // 以步长为2 打印数据
        println("num = ${num1}")
    }

7.3 数组倒序 reversed()

    var num3 = nums.reversed() // 数组倒序

7.4 数组计数 count()

nums.count()// 计算数组中的数据个数

8. List 和 Map 

8.1 List

        创建一个List


	var lists = listof("张三", "李四", "王五", "六六")

	var sonList = listOf<Son>(s1, s2, s3)

        遍历一个list

	for (item in lists) {
		println("$item")
	}

	for ((i, e) in lists.withIndex()) { // 0, 张三 同时打印下标和 内容
		println("$i, $e")
	}

8.2 Map

        声明一个map,并put数据

var map = TreeMap<String, String>()
map["hao"] = "good"
map["buhao"] = "not good"

        输出key = "hao" 对应的value,不存在则输出null

print(map["hao"])

        遍历一个map

	// 方法一
    map.forEach {
       println("key = ${it.key}, value = ${it.value}")
    }

	// 方法二
    for ((key,value) in map){
        println("key = $key, value = $value")
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值