• Kotlin 随笔小计


    最近准备学Kotlin

    现在Kotlin也能支持IOS开发了,准备后面买个Mac也能进行IOS开发

    当然目标还是看着能不能把一些小的Android项目重构下

    也算是定个目标吧,由于沉迷吃鸡,日志都没怎么写了%>_<%

    先弄明白

    • 变量,常量,等
    • 函数
    • 数据结构(如果有)
    • 关键字或者运算符,Kotlin中特有的关键字

    变量,常量: 

        val a:int = 10

        我感觉:val 变量关键字 + 变量名 + :(继承符号吧) + 变量类型关键 + = 赋值

        对于数值比较大的数字,可以用 _  隔开,以方便使用

    函数 :

         控制流,控制语句;

        if ,when,for,while语句;

        for可以循环遍历任何提供了迭代器的对象;

    关键字:? 问号表示可空值  

        is 运算符检测一个表达式是否某类型的一个实例。判断某个变量是否是某个类型。

        in 一般是判断某实例是否包含在某个集合或数组内;准确的是 使用 in 运算符来检测某个数字是否在指定区间内:

        .. 两个点表示从左边的角标到右边的角标的范围

        . 一个点有点像C++还是表示在 使用类中的方法或者引用某个常量

          fun 函数表示

        val 变量声明

        $  字符串的模板 关键字 字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成。如 s 是一个数组 然后$s.length 打印出来就是 s.length

    ,然而${s.length}则 打印出来就是s的长度,即他需要由花括号括起来。

    类 :类的关键字 class 

      field 类中属性访问器的关键字,在类初始化的时候使用,但是这个get() set()函数可以不用写出来

      constructor 构造函数 关键字声明

      inner 嵌套内部类关键字,使用方法 inner class Person{}

      open 类可以继承,默认类是final的,也就是说你必须在类前面写了open 才能继承这个类

      : 继承关键字,有点像C++的继承,不是有点像,好像用的关键符号就是一样的;

        函数最后面返回值也用这个符号以告诉函数这后面是返回值

      :: 通俗点讲就是把一个方法当参数,传递到另一个方法中使用,就是引用一个方法。

      


      Kotlin中的静态方法以及匿名内部类用法

      companion ,object  这两个要连起来一起说,因为经常一起使用,kotlin里面没有匿名内部类,而且companion只有这一个用法

      如下是Kotlin官方文档的用法

    class MyClass {
        companion object Factory {
            fun create(): MyClass = MyClass()
        }
    }
    // 使用
    var instance = MyClass.create()
    // 也可以使用下面的方法来调用
    // 由于Factory定义后不可修改,故使用val变量来存放
    val factory = MyClass.Factory
    var instance = factory.create()

      下面再上一段java转的kotlin方法看一下,方便比较下用法以及变化

    class TestActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            context = this
            MainActivity.startAcitivityForResult(this)
        }
    
        companion object {
            private var context: Context? = null
    
            fun getText() {
                Toast.makeText(context, "ppppp", Toast.LENGTH_SHORT).show()
            }
    
            fun setTest() {
                val builder = AlertDialog.Builder(context)
                builder.setTitle("PPP")
                builder.setMessage("qianer")
                builder.setPositiveButton("ok") { dialog, which -> Log.v("Dialog_CLick", "click") }
                builder.create()
                builder.show()
            }
        }
    }

     其中Companion object里面的 getText和 setText都为静态方法,所以转化后都变为Companion object内的方法


  • 相关阅读:
    Linux查看用于终止进程命令
    Linux查看当前正在运行的进程
    Windows 和 Linux 平台下的端口转发工具
    Windows 和 Linux 平台下的端口转发工具
    linux下最简单的端口转发工具
    linux下最简单的端口转发工具
    try与finally块中return的问题
    try与finally块中return的问题
    为啥还要写呢?——北漂18年序言
    JavaScript DOM对象和JQuery对象相互转换
  • 原文地址:https://www.cnblogs.com/fengfenghuifei/p/7825857.html
Copyright © 2020-2023  润新知