Kotlin—控制结构笔记(一)

变量与常量

常量:

val=value,值类型,类似Java的final,不可以重复赋值。

变量:

var=variable

类型推导就是编译器可以推导量的类型

package com.example.n
val FINAL_HELLO_WORLD:String="Helloworld"
var helloworld:String="HelloWorld"
//类型推导
val FINAL_HELLO_CHINA="hellochina"

fun main(args:Array<String>)
{
     helloworld="hiworld"//可以重新赋值
}

 

函数

以特定功能组织起来的代码块:

package com.example.n


fun main(args:Array<String>)
{
    
    val arg1=args[0].toInt()
    val arg2=args[1].toInt()
    println("$arg1+$arg2=${sum(arg1,arg2)}")
}
//fun sum(arg1:Int,arg2:Int):Int{
//    return  arg1+arg2
//}

fun sum(arg1:Int,arg2:Int)=arg1+arg2;

 

Lambda表达式

Lambda表达式就是匿名函数

 

遍历:

 args.forEach { println(it) }
 args.forEach (::println ) 

Lambda表达式的简化:

函数调用最后一个Lambda可以移出去

函数参数只有一个Lambda,调用时小括号可以省略

Lambda只有一个参数时可以默认为it

入参,返回值和形参一致的函数可以用函数引用的方法作为实参传入

 

类成员

类成员包括属性和方法

属性的初始化尽量在构造方法中完成

无法在构造函数中初始化,尝试降级为局部变量

var 用lateinit延迟初始化,val用lazy

可空类型谨慎使用null直接初始化

val修饰的属性相当于只读变量必须初始化

class A{
    var b=0
    get(){
        println("someone tries to get b")
        return field
    }

    set(value){
        println("some one tries to set b")
        field=value
    }

}

 

运算符

Java中没有而Kotlin中有的运算符

1.in

a in b  ---->   b.contains(a)

a!in b ------>!b.contains(a)

2.is

用于检查对象是否是某个类的实例,相当于Java中的instanceof运算符。

 

Kotlin和Java相同的运算符:

 

Kotlin与Java使用有差异的运算符

1.==和!=

==比较的式值,===才是比较对象

2.[]

 与Java不同,Kotlin的这个运算符不仅可以用在数组变量后,也可以用在集合变量后,可以方便地调用和操作数组和集合中的元素。

 

Java中有而Kotlin没有的运算符

Kotlin中抛弃了类c风格的运算符,只是定义了几个函数

 运算符重载:

  • 任意类可以定义或者重载父类的基本运算符
  • 通过运算符对应的具名函数来定义
  • 对参数个数做要求,对参数和返回值类型不做要求
  • 不能定义任意运算符

中缀表达式:

只有一个参数,而且用infix修饰的函数

不需要用.()的方式来调用

运算符+重载的栗子:

package com.example.n

class Complex(var real:Double,var imaginary:Double) {
    operator fun plus(other: Complex): Complex {
        return Complex(real + other.real, imaginary + other.imaginary)
    }

    override fun toString(): String {
        return "$real+${imaginary}i"
    }
}

    fun main(args:Array<String>)
    {
        val c1=Complex(3.0,4.0)
        val c2=Complex(2.0,7.5)
        println(c1+c2)
    }

 

参考文章:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值