关闭

学习的步伐(五) Kotlin 基础语法学习总结:语法

标签: Kotlin基础语法
229人阅读 评论(0) 收藏 举报
分类:

共同学习


语法

  • 返回一个Arraylist集合
 /**
     * 制造假数据
     * 返回一个ArrayList<String> 的集合
     * */
    fun getData( ) : ArrayList<String>{
        val arrayList = ArrayList<String>()
        val list = listOf<String>("a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "l", "m", "n", "o")
        //for循环
        for (k in list){
            arrayList.add(k)
        }
        return  arrayList
    }
  • for循环
  //for循环
        for (k in list){
            arrayList.add(k)
        }
  • if 表达式

Kotlin中是没有三元表达式,if表达式就已经满足需求了!

fun max1() {
        var max: Int = 3
        var min: Int = 1
        //传统写法
        if (min < max)
            max = min
        Log.e("max:传统写法", "" + max) //打印结果:06-29 18:04:14.048 1200-1200/webred.cp.example.com.kotlingrammar E/max:传统写法: 1

    }

    fun max2() {
        var max: Int = 3
        var min: Int = 1
        if (min > max)
            max = min
        else
            max = 4
        Log.e("max", "" + max) //打印结果:06-29 18:04:14.048 1200-1200/webred.cp.example.com.kotlingrammar E/max:4
    }
    fun max3() {
        var max: Int = 3
        var min: Int = 1
        var myMax=if (min > max) min else max
        Log.e("myMax", "" + myMax) //打印结果:06-29 18:04:14.048 1200-1200/webred.cp.example.com.kotlingrammar E/myMax: 3
    }
  • 数组arrayOf()
/**
*我们可以给库函数 arrayOf() 传递每一项的值来创建Array,arrayOf(1, 2, 3) 创建了一个[1, 2, 3] 这样的数组
*/
  val image = arrayOf(R.mipmap.zhuye,R.mipmap.shangdian,R.mipmap.msg,R.mipmap.sd_ka)
  • listOf()
    listOf()是使用ArrayList实现的,返回的list是只读的,其内存效率更高。在开发过程中,可以尽可能的多用只读List,可以在一定程度上提高内存效率。
       val tab1:Tab1Fragment=Tab1Fragment()
        val tab2:Tab2Fragment=Tab2Fragment()
        val tab3:Tab3Fragment=Tab3Fragment()
        val tab4:Tab4Fragment=Tab4Fragment()
        var lsit =listOf<Fragment>(tab1,tab2,tab3,tab4)
  • when表达式 跟java的switch一样
    //调用
        testWhen(1)
        testWhen("Kotlin")
        testWhen(222)


   //Any   Kotlin类层次结构的根。每个Kotlin类都有一个超类。
    fun  testWhen(any : Any){
        when(any){
            1 -> Log.e("Tag",any.toString())
            "Kotlin" -> Log.e("Tag",any.toString())
            is Long-> Log.e("Tag",any.toString()+"This is  Long")
            else -> Log.e("Tag","什么都不是")
        }
    }

Log:
07-01 13:55:35.179 25675-25675/webred.cp.example.com.kotlingrammar E/Tag: 1
07-01 13:55:35.179 25675-25675/webred.cp.example.com.kotlingrammar E/Tag: Kotlin
07-01 13:55:35.179 25675-25675/webred.cp.example.com.kotlingrammar E/Tag: 什么都不是
  • range 表达式
    //  ..操作符号  表示区间的意思
   // rangeTo 函数拥有形如 .. 的操作符,该操作符是用 in 和 !in 实现的。 Range 可以对任何可比较的类型做操作,但对整数基本类型是优化过的。
        var a : Int=1
        if (a in 1..10) {
        //表示  a 在1到10的区间  (包括1 和10)
        }
        //或者
        if (a !in 1..10) {
            //表示  a 不再在1到10的区间  (包括1 和10)
        }

downTo()和step()

/**downTo():
**/
     a 种方式:
        for (i in 1..4)Log.e("for循环1",i.toString())  //打印结果: 1  2   3   4 
     b 种方式:
        for (i in 4..2)Log.e("for循环2",i.toString()) //打印结果: 什么都不会打印


        //如果b种方式想打印出来可以调用这个函数:downTo()
        for (i in 4 downTo 1)Log.e("for循环downTo",i.toString())//打印结果:4  3  2  1



/**
*step():指定步数的迭代
*
**/
   for (i in 4 downTo 1 step 2)Log.e("for循环setp",i.toString())//打印结果:4 2 
      for (i in 5 downTo 1 step 2)Log.e("for循环setp",i.toString())//打印结果:5 3 1
      //注意观察规律:如果step指定  打印的时候从第一个数,往后移动几个位置(setp指定的数就是要移动的位置)。
      for (i in 1..4 step 2)Log.e("for循环setp",i.toString())//打印结果:1 3


也支持小数的:
for (x in 2.0 downTo 1.0 step 0.3) Log.e("for循环setp",x.toString())//打印结果:"2.0 1.7 1.4 1.1 



先介绍这么多,后续陆续补充!
如果有什么描述的不对的欢迎留言指出!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19444次
    • 积分:673
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:3篇
    • 译文:0篇
    • 评论:6条