为了账号安全,请及时绑定邮箱和手机立即绑定

Kotlin开发知识(一)

标签:
Kotlin

1.Kotlin泛型使用

Out(协变)

如果你的类是将泛型作为内部方法的返回,那么可以用out。可以称其为production  class/interface,因为其主要是产生(produce)指定泛型对象。

interface Production<out T>{      fun produce():T
}
In(逆变)

如果你的类是将泛型对象作为函数的参数,那么可以用In。可以称其为consumer class/interface,因此其主要是消费指定泛型对象。

interface Consumer<in T>{       fun consume(item:T)}
Invariant(不变)

如果既将泛型作为函数参数,又将泛型作为函数的输出,那就既不用In或Out。

interface  ProductionCounsumer<T>{      fun  produce():T
      fun  comsume(item:T)}

2.属性

声明一个属性的完整语法是

var <propertyName>[: <PropertyType>] [= <property_initializer>]
       [<getter>]
       [<setter>]

其初始器(initializer)、getter和setter都是可选的。
在kotlin类中不能直接声明字段。然而,当一个属性需要一个幕后字段时,kotlin会自动提供。这个幕后字段可以使用field标识符在访问器中引用

var  counter = 0 //注意:这个初始器直接为幕后字段赋值
      set(value){            if(value >= 0) field = value
      }

3.可见性修饰符

函数、属性和类、对象和接口可以在顶层声明,即直接在包内

//文件名:example.ktpackage fooprivate fun foo() { ...... } //在example.kt内可见public var bar: Int = 5 //该属性随处可见private set                  //setter 只在example.kt内可见internal var baz = 6    //相同模块内可见
  • 如果不指定任何可见性修饰符,默认为public,这意味着你的声明将随处可见

  • 如果你声明为private,它只会在声明它的文件内可见

  • 如果你声明为internal,它会在相同模板内随处可见

  • protected不适用于顶层声明

模板

可见性修饰符internal意味着该成员只在相同模板内可见。更具体地说,一个模板是编译在一起的一套Kotlin文件

4.表达式

中缀表达式
  • 只有一个参数,且用infix修饰的函数

class Book{
       infix fun on(place:String){ ... }
}

Book()  on  "My Desk"
分支表达式
val mode = if(args.isNotEmpty()&&args[0] == "1"){
    DEBUG
}else{
   USER
}
when表达式
val x = 5
when(x){
    is Int -> println("Hello $x")    in 1..100 -> println("$x is in 1..100")
}



作者:AndryYu
链接:https://www.jianshu.com/p/86038b83cb71


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消