当前位置: 首页 > news >正文

kotlin基础语法

1.变量

var a:Int = 2                        //声明类型的可变变量

var b = 3                             //代码推测可变变量类型

val c = 6                             //代码推测不可变常量类型

var d:String?=null              //可为null的String类型的可变变量

lateinit var e:String            //延迟初始化的String类型的可变变量(不能为null)

val f:String by lazy("xxx")  //String类型的不可变常量,被访问时会赋值xxx

const val g = 4                  //编译期常量

 2.函数

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

        return a+b

)

//fun 函数名(参数1:参数1类型, 参数2:参数2类型):返回值类型

fun div(c:Int, d:Float = 1f) = c+d

//kotlin的函数的参数可以赋初始值,当不传参数时就会使用初始值

//方法也可以直接简写

fun more(vararg a:Int)(

        return a.get(0)+...+a.get(xx)

)

//vararg表示可以传多个参数,参数就相当于一个数组

3.语法

        除了 for 与 when 其他与Java一致

for( i in 0..10))( printLn(i) )        //左右闭区间

for( i in 0 until 10))( printLn(i) )        //左右开区间

for( i in 0..10 step 2))( printLn(i) )        //0、2、4、6、8、10

for( i in 10 downTo 0 step 2))( printLn(i) )        //10、8、6、4、2、0

when(i){

        i is String->{}

        i !is Float->{}

        i in 0..10->{}

        i == 2->{}

        else->{}

}

when{

       boolean->{}

       else->{}

}

  • i is String -> {}:当 i 是 String 类型时执行的代码块

  • i !is Float -> {}:当 i 不是 Float 类型时执行的代码块

  • i in 0..10 -> {}:当 i 在闭区间 [0, 10] 内时执行的代码块

  • i == 2 -> {}:当 i 的值等于 2 时执行的代码块

  • else -> {}:当以上条件都不满足时执行的代码块

  • boolean -> {}:当 boolean 为真时执行的代码块。这里 boolean 是一个布尔值

  • else -> {}:当以上条件都不满足时执行的代码块

4.类

interface AAA{

        fun aaa()                //需要重写

        fun bbb(){}              //不需重写

}

  •  实现AAA时,其已经有方法体的方法可以不重写

object Obclass{

        fun aaa()

}

  • Kotlin 中的单例对象 Obclass,外部可以直接用object.aaa()来调用其方法

data class AAA(var name:String, var age:Int = 20){

        var grade:String = " "

}

  • 数据类,至少有一个参数(所有参数都要声明类型)

sealed class Slclass() 

  • 密封类(枚举) 

5.构造函数

class AAA(private var b:Int = 1)

class AAA private constructor (var b:Int)

class AAA(){

        constructor()

        constructor(var b:Int):super()

        constructor(var a:String, var b:Int = 20):super()

        init{

                //初始化

        }

}

  • 前两个是只有主构造函数,第三个包含了多个辅助构造函数
  • init在主构造函数之后执行
http://www.lryc.cn/news/311243.html

相关文章:

  • 淘宝天猫商家爬虫工具 电商采集软件使用教程
  • 建库建表时,最容易忽略的10个细节
  • 【基础知识】什么是 PPO(Proximal Policy Optimization,近端策略优化)
  • 程序员如何选择职业赛道?
  • [LeetBook]【学习日记】寻找和为指定数字的连续数字
  • 阿里云中小企业扶持权益
  • 2核4g服务器能支持多少人访问?并发数性能测评
  • Anthropic官宣Claude3:建立大模型 推理、数学、编码和视觉等方面 新基准
  • STM32 TIM编码器接口
  • Jupyter Notebook的安装和使用(windows环境)
  • Platformview在iOS与Android上的实现方式对比
  • 使用lnmp环境部署laravel框架需要注意的点
  • AI-RAN联盟在MWC24上正式启动
  • Reactor详解
  • 实践航拍小目标检测,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的小目标检测识别分析系统
  • 分布式数据库中全局自增序列的实现
  • 【论文阅读】TensoRF: Tensorial Radiance Fields 张量辐射场
  • 深入了解 Android 中的 FrameLayout 布局
  • 高级大数据技术 实验一 scala编程
  • 使用Fabric创建的canvas画布背景图片,自适应画布宽高
  • 枚举与尺取法(蓝桥杯 c++ 模板 题目 代码 注解)
  • 11、电源管理入门之Regulator驱动
  • 24年证券从业考试注册报名流程详细图解,千万不要错过报名哦!
  • Git入门学习笔记
  • ⭐每天一道leetcode:27.移除元素(简单;vector)
  • 如何处理Android内存泄漏和性能优化
  • 应用方案 | D722 9MHz,轨对轨I/O CMOS运放,低噪声、低电压、低功耗运放,应用广泛
  • 小程序常用样式和组件
  • 《Redis 设计与实现》读书概要
  • Docker之数据卷自定义镜像