Kotlin简单语法

介绍

Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。已正式成为Android官方支持开发语言。

代码更简介、更简单,能够静态检测常见的陷阱。

https://www.jianshu.com/p/d30406daaf25

在这里插入图片描述

基本语法

程序入口 - main函数 (唯一)

    fun main(args: Array<String>){
        
    }

声明变量

        // TODO  声明变量的三种方式
        // 1: val (value) 不可变引用 相当于Java 中的final
        // 2: var (variable) 可变引用 (不同于JavaScript,类型仍然不可变) 相当于Java中的普通变量

        val  a="Hellow "
        val  b: Int = 10
        val  c=8.8e8
        val  d: String
        d="sss"

声明控件

控件可声明也可不声明,用的时候直接拿控件id名使用即可。

    // 第一个是在自定义对象名  第二个是类
    // 这里只是初始化 不能直接使用   -  不用初始化 直接使用布局id

    var textView :TextView? =null
		//没有声明 - 拿控件id直接使用
 		textview.setOnClickListener {

   		     }

函数

计算之和

	 fun main(args: Array<String>){
  	      //计算之和  控制语句是表达式,不是语句
    	    print("sum  1 and 2 : "+sum(1,2))
  	  }
    
	 fun sum( a : Int , b : Int) : Int{    
 		    return  a+b
	  }

条件表达式


 fun main(args: Array<String>){
  	    println(max2(1, 2))
        println(max(3, 5))

  	  }
    

	//两种方式
	 fun max(a:Int ,b:Int) : Int{
   	      // 条件表达式
  	      return if(a>b) a else b
   	 }

    fun max2(a : Int , b:Int) = if(a>b) a else b
        //确保编译器只有唯一一条初始化语句被执行,if判断
        val message : String
        val isTrue : Boolean = true
        if(isTrue) message = "true" else message="false"

引用变量

在变量名前加 $ 就可以引用变量 - 变量名要用{}包裹。

        // TODO  字符串
        val name= if( args.isNotEmpty()) args[0] else "yu"
        println("Hello ,${name}")

        println("Hellow , ${ if (args.isNotEmpty()) args[0] else "New"}")

循环

for

		// for循环
        var items = listOf("a","b","c")
        for (item in items) {
            println(item)
        }

while

  //while循环
        var index = 0;
        while (index < items.size){
            //    println("item at $index is ${items[index]}")
            println("item at $index is ${items[index]}")
            index++
        }

when表达式

    //when表达式
        var x:Int = 2
        
        when(x){
            1 -> print("x==1")
            2 -> println("x==2")
            else -> println("else")
        }

区间

区间 /范围(Ranges)表达式 :由操作符 … (rangeTo函数),in 和 !in 构成

		val list= listOf("a","b","c")

        val i=3
        // 等价于 if( 1 <= i && i <= 10)
        if( i in 1 .. 10){
            println("$i , 位于【1,10】之间 ")

        }
        // 区间操作符 .. 的底层实现就是rangeTo()函数
        if( i in 1.rangeTo(10)){
            println("$i , 位于【1,10】之间")
        }

        // 检查数组下标索引是否越界
        val  array= listOf("aaa","bbb","ccc")
        if(i !in 0..array.size -1 ){//如果 i 不在数组长度范围内
            println("数组下标越界: array han only ${array.size}")
        }

        //检查数组是否包含某元素
        if("b" in array){ //相当于contains
            println("YES")
        }
        //TODO  2、整形区间 - 迭代(循环遍历)
        // 整形区间: 可迭代(循环遍历),编译器会将整形区间转换为类似Java基于索引的for循环,没有额外开销

        fun main(args: Array<String>){
            for (i in 1 .. 4 ) print(i)//输出 1、2、3、4
            for (i in 4 .. 1)  print(i) //什么都不输出
        }

类型检测与自动类型转换

is 运算符检测一个表达式是否某类型的一个实例,如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显示跳转。


    fun getStringLength(obj : Any): Int ?  {

        // TODO 类型检测与自动类型转换
        if (obj is String){
            //在该分支内 obj 自动转换成 string
            return obj.length
        }
        return  null
    }

数字类型转换

每个数字类型支持如下的转换:

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

	val a : Int ?=1
//	val b : Long ? = a 
	val b : Long  = 11
	
	//显示转换来拓宽数字
	val i : Int = b.toInt()
	print(a)
	
	
	val L = 1L+3  //long = long + int 
		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值