Kotlin学习进阶(二)

前言

上一篇分析了Kotlin和Java语言的优缺点,要成为一枚优质程序员学习Kotlin还是很有必要的。

 

 

这是最近学习Kotlin所作的笔记,主要罗列的是比较重要的知识点,都是干货。

 

1.包的声明

package com.hewei.kotlindemo

var a = 1

fun function1() {

}

class Student {

}

与java不同的是,Kotlin中包名可以不用与源文件的目录结构对应,即源文件可以随意移动包名也不变,只要引用的时候加上就可以,例如其他地方引用就为com.hewei.kotlindemo.function1()。

还有一点需要注意,相同包名的Kotlin文件不要定义重名的方法和类,除非所传的参数不同。举个栗子

package com.hewei.kotlindemo

fun function2() {

}

fun function1() {//编译就会报错

}

fun function1(s : String) {//正常

}

 

2.定义函数

定义函数之前先来讲讲修饰符,普通的private,public(默认),protected和java相同,kotlin中独有的的internal表示本模块可见

函数的定义我们只要通用性的写法就行,第三种应用的场景不多,前两种可以完美替代而且规范

fun sum(a: Int, b: Int): Int {   // Int 参数(形参名:形参类型),返回值 Int
    return a + b
}

fun printSum(a: Int, b: Int) { //普通方法
    print(a + b)
}

fun sum(a: Int, b: Int): Int = a + b

 

3.定义常量和变量

kotlin中常量和变量的定义方式和js很像,var表示变量标识符,val表示常量标识符

var a:Int = 1//可变变量
val b:Int = 2//不可变变量
var c = 3//根据等号右边的值自动推断c的类型
var d:Int//定义时不进行初始化,则Int不能省略

 

4.NULL检查机制(非空类型和可空类型)

默认情况下我们定义的所有类型都是非空的。

//var a : String = null  //错误写法,默认非空不能定义为null
var a : String = "111"//正确写法
val b : Int = a.length //由于a是非空类型,不会有异常

在类型关键字后面加上?就代表可以为空

var a : String? = null  //正确写法,英文可空类型
val b = a.length //错误 会出现空指针异常

val c = a!!.length // 如果a为空这里会抛出空指针异常

val d = a?.length // 安全操作符?.    如果a为空就直接返回null

val e = a?.length?:-1 // 这里的?:是Elvis操作符,表示前面如果为空就会返回后面的值,a若为空返回-1
val e = if (a != null) a.length else -1 //等价于上面,条件判断的形式和java一样

student?.total?.boyCount//?.在链式调用结构中非常有效

 

5.类型转换和类型检查

每一种数据类型都有对应的转换方法toInt,toByte等等,还有一种类型转换方式为用操作符 as,举个栗子

var a = 1
var b : Byte = a.toByte()

var c : Byte = a as Byte
var c : Byte? = a as? Byte//as? 表示无法转换或出现异常时 返回null,是一种安全的转换方式

类型检测使用is或!is操作符。在大部分情况下,不需要在Kotlin中使用显式转换操作符,因为编译器会跟踪不可变值的is检查,并在需要时自动进行类型转换,如下

if (s is String) {
    print(s.length)   //s被自动转换为String
}

但是当编译器不能保证变量在检查和使用之间不可改变时,智能转换是不能用的

 

6.条件控制

其实上面部分地方用到了if条件语句,格式和java基本一样,有些特殊的用法罗列出来

val max = if (a > b) a else b

特殊点的就是when表达式,when 会将它的参数和所有的分支条件顺序比较,直到某个分支满足条件,when即可以作为语句,也可以作为表达式

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> {
        print("3...")
    }
}

when (x) {
    0, 1 -> print("x == 0 or x == 1")//0,1两个分支执行一样的操作
    else -> print("other")
}

//可以用任意表达式(而不只是常量)作为分支条件
when (x) {
    parseInt(s) -> print("s encodes x")//当x等于parseInt(s)时,执行此分支
    else -> print("s does not encode x")
}

//也可以检测一个值在(in)或者不在(!in)某个区间或者集合中
when (x) {
    in 1..10 -> print("x is in the range")
    in validNumbers -> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    else -> print("none of the above")
}

//另一种可能性是检测某个值是(is)或者不是(!is)某个特定类型的值
val hasPrefix = when(x) {
    is String -> x.startsWith("prefix")//会将x智能转换为String类型
    else -> false
}

//when也可以用来取代if-else if链。如果不提供参数,所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支
when {
    x.isOdd() -> print("x is odd")
    x.isEven() -> print("x is even")
    else -> print("x is funny")
}

 

7.循环控制

for 和 while循环的基本语法和java类似比较简单,包括break 和 continue 都是一样的语法,这里就不做举例。

 

结语

这篇只是讲解了kotlin的基本使用的重要知识,可以看到和java用法的相似度非常高,部分地方需要做笔记,特别是kotlin的一些特殊操作符和特殊表达式,下一节将会做一些类和对象的详细笔记

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kotlin是一种现代的、类型安全的编程语言,具有简洁、高效、可读性强等特点,号称是Java的改进版。本文将介绍Kotlin从入门到进阶的实战方法。 1. 入门篇 首先,你需要了解Kotlin的语法及基础语法,包括变量、函数、控制语句等。可以通过学习Kotlin官方文档或者基础教程进行学习。完成基础语法学习后,可以尝试编写一些小的Kotlin程序。 2. 进阶篇 在掌握了Kotlin的基础知识后,需要深入学习Kotlin的高级语法,例如Lambda表达式、对象表达式与对象声明、扩展函数及属性等。这些高级语法可以帮助你更好地利用Kotlin提供的高级特性,提高代码的复用性和可读性。 3. 实战篇 最后,实践是检验技能的最好方法。可以尝试使用Kotlin进行实际项目的开发,例如移动端App开发、Web后端开发等。在实际项目中,你可以充分运用Kotlin的特性,比如使用Kotlin的Java互操作性特性以及Kotlin与Spring、Android等框架的集成,来提高开发效率和代码质量。 总之,Kotlin学习需要注意多练习、多实践,并且不断更新Kotlin的版本,了解其最新的特性和使用方法,从而提升自己的编程水平。 ### 回答2: Kotlin是一种静态类型的编程语言,它是由JetBrains公司开发的。Kotlin语言同时支持面向对象编程和函数式编程,其设计的目标是成为一种更简洁、安全和实用的语言。Kotlin可以用于开发Android应用程序、Web应用程序、桌面应用程序、服务器端应用程序和大数据应用程序。 Kotlin的入门学习需要掌握其基本语法、基本数据类型、函数和控制流等概念,可以通过学习教程、视频、练习题和实践项目等方式来进行学习学习过程中要注意掌握Kotlin与Java的区别,例如空值处理、lambda表达式等方面的差异。 在进阶学习阶段,可以学习Kotlin的高级语法、面向对象编程和函数式编程的特性、Kotlin与Java互操作、协程等内容。此外,掌握Kotlin标准库和第三方库的使用也是进阶学习的重要内容。 在实战环节中,可以通过实践项目来深入掌握Kotlin的应用,提高自己的编程能力。例如,可以通过开发Android应用程序、Web应用程序和桌面应用程序等项目,来实践Kotlin的应用。 总之,Kotlin从入门到进阶需要学习者进行系统性、持续性的学习,通过理论学习和实践项目相结合的方式,来全面掌握Kotlin的应用。 ### 回答3: Kotlin 是一门兼具面向对象编程和函数式编程特性的现代化编程语言。它既能够用于 Android 开发,也能够用于 Web 开发、桌面应用程序的开发等领域。 对于 Kotlin 入门级的学习者,可以通过在线教程、视频教程、博客等途径了解 Kotlin 的基本语法、函数、面向对象编程等知识。可以先从一些简单的练习开始,例如编写 Hello World 程序、定义变量、实现条件判断等。 当进入到 Kotlin进阶阶段后,需要深入学习函数式编程、泛型、集合、类型推断、异常处理等知识。这时候,需要更深入地了解 Kotlin 的一些高级特性,例如 Lambda 表达式、闭包、协程等。 Kotlin 实战的部分就需要将所学知识运用到真实的开发场景中。可以通过编写简单的 Android 应用、Web 应用程序、桌面应用程序等来进行实践。需要学习一些与领域相关的知识,例如 Android 开发中的界面设计、网络请求、数据存储等。同时也要了解一些开发工具和框架,例如 Android Studio、Ktor、Spring、Hibernate 等,以便更高效地完成项目开发。 总结来说,从入门到进阶实战需要不断学习、实践和精进。需要在实践中不断优化自身开发方式,提高代码的可读性和可维护性,掌握 Kotlin 的各种高级特性,为自己更好地应对开发场景提供基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值