前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kotlin基本语法

kotlin基本语法

作者头像
wresource
发布2023-01-31 16:42:00
5720
发布2023-01-31 16:42:00
举报
文章被收录于专栏:云服务器开发云服务器开发

一、kotlin 语言介绍

与java类似的一种基于JVM虚拟机的语言,java其实也是一种解释型语言,生成的class文件供JVM解释,同时kotlin也是一样的kotlin就是为了解决java的各种痛点而产生的,利用kotlin可以大大减少开发过程中的代码量编写,有一套几乎可以杜绝空指针的机制,kotlin没有分号

二、如何运行Kotlin代码

郭霖大神这本第三行代码是在AS里面运行的,当然我们也可以用idea运行,eclipse应该也可以多安装一个kotlin插件就ok,生成后缀为kt的kotlin文件,利用以下简单代码段即可编写第一个程序,与java的主函数很像,不过代码更加简洁

代码语言:javascript
复制
fun main (){
    prinln("hello world")
}

三、编程之本:变量和函数

变量

代码语言:javascript
复制
val a //a声明为不可变的
var b//b声明为可变的

为了保证程序中变量的稳定,kotlin语言设计之初就推荐我们尽量使用val定义变量,除非变量必须要改变

代码语言:javascript
复制
val a = "hhhh"
val a :String = "hhhhh"

kotlin 有一套出色的类型推导机制,所以不指定时根据后面的赋值即可自动推导出他的类型,如果需要指定,需要:变量类型,有一点与java不同的就是,kotlin没有基本类型,全部利用类来替代,Int 相当于 int ,首字母全部大写。

函数

与java相似,method方法Java中的称呼,本质上是一样的,不过有一个比较特殊的,即语法糖,当只有一行代码时,可以直接将其写在尾部然后利用等号连接

代码语言:javascript
复制
fun hhh(name : String ,adress : String ) = max (name.length,adress.length)
fun hhh(name : String ,adress : String ) :Int{
    max (name.length,adress.length)
}

四、程序的逻辑控制

if条件语句

if语句拥有和java几乎一样的功能和用法,不过kotlin的if具有返回值,这使得它可以利用语法糖来简化代码,以每个条件的最后一行作为返回值

代码语言:javascript
复制
fun hhh(name :String ,adress :String ) = if (name.length > adress.length) name.length else adress.length

when 条件语句

类似于java里面的switch语句,不过解决了很多痛点,例如break经常忘记加,以及匹配值类型的局限性,利用when可以省去很多不必要的代码

代码语言:javascript
复制
//基本形式为 匹配值 -> {代码块}
fun getScore (name :String ) = when (name){
    "Tom" -> 86
    "Jim" -> 77
    else -> 0
}

还有一种不带参数的写法,更加灵活

代码语言:javascript
复制
fun getScore (name :String ) = when {
    name.startsWith("Tom") -> 86
    name == "Tom" -> 86
    name == "jim" -> 77
    else -> 0
}

循环语句

kotlin 里面的for循环是for in ,比java里面的加强for更加好用,while的用法二者几乎一样

代码语言:javascript
复制
//kotlin里面有区间这个概念
//for exmple
val a = 1..10
//代表区间[1,10]间隔1
val b = 0 until 10
//代表区间[0,10)
//也可以设置间隔
val c = 1..10 step 2
//也可以倒序输出
val d = 10 downTo 1

五、面向对象编程

类与对象

类和java中的差不多,就是不用加new关键字了

继承与构造函数

java里面默认继承object类,而kotlin则默认不继承,需要加上open关键字才可以,继承只需要加上:即可

代码语言:javascript
复制
//即Student继承Person
open class Person(){
    
}

class Student :Person(){
    
}

构造函数相对而言比较复杂,分为主构造函数和次构造函数,次构造函数用constructor声明

接口

与继承使用差不多,允许对接口进行默认实现,java和kotlin中有函数可修饰的修饰符

代码语言:javascript
复制
Java public private protected default
Kotlin public private protected internal

Java 默认default 而kotlin默认public

数据类和单例类

数据类 :class前面加个data即可

单例类:创建类时使用object关键词

六、Lambda 编程

集合的创建以及使用

Set 不存放重复元素,map可以利用类似数组下标进行赋值,list可以简化赋值

集合的函数式API

lambda表达式的基本语法结构

代码语言:javascript
复制
{参数名1:参数类型,参数名2:参数类型 -> 函数体}

最后一行代码作为函数的返回值

Java函数式API的使用

与后面android sdk 接入有关,不过目前还没怎么看懂,用到了再说

七、空指针检查

可空类型系统

kotlin默认所有变量都不可为空

类型?代表此类型可为空

判断辅助工具

代码语言:javascript
复制
?.//代表为空什么都不做,不为空执行句号后面的逻辑
?://不为空返回左边,否则返回右边的
!!//强制判断非空
let//就不太明白

八、kotlin的小魔术

字符串内嵌表达式

利用$进行内嵌,解决java字符串拼接时一堆加号和分号的痛点

代码语言:javascript
复制
val a = "22"
val b = "67"
println("$a + hhhh + $b")
//相当于java的这种效果
//println(a+"hhhh"+b);

函数的参数默认值

可以通过键值对进行传参,可以做到和次构造函数一样的作用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 android 踩坑小天才 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、kotlin 语言介绍
  • 二、如何运行Kotlin代码
  • 三、编程之本:变量和函数
    • 变量
      • 函数
      • 四、程序的逻辑控制
        • if条件语句
          • when 条件语句
            • 循环语句
            • 五、面向对象编程
              • 类与对象
                • 继承与构造函数
                  • 接口
                    • 数据类和单例类
                    • 六、Lambda 编程
                      • 集合的创建以及使用
                        • 集合的函数式API
                          • Java函数式API的使用
                          • 七、空指针检查
                            • 可空类型系统
                              • 判断辅助工具
                              • 八、kotlin的小魔术
                                • 字符串内嵌表达式
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档