美文网首页
4.RangeTo与面向对象的Kotlin

4.RangeTo与面向对象的Kotlin

作者: leofight | 来源:发表于2017-12-23 10:28 被阅读0次

    1.rangeTo的约定

    ..语法,例如:1..10代表所有1到10的数字。..运算符是调用rangeTo函数的一个简洁方法。

    • 示例代码
    
    fun main(args: Array<String>) {
        val a = 5
        val b = 10
    
        if (a in 2..b) {
            println("in the range")
        }
    
        if (a !in 2..b) {
            println("out of the range")
        }
    
        println("-----------")
    
    
        for (i in 2..10) {
            println(i)
        }
    
        println("------")
    
    
        for (i in 2.rangeTo(10)) {
            println(i)
        }
    
        println("---------")
    
        for (i in 2..10 step 2) {
            println(i)
        }
    
        println("-------")
    
        for (i in 10 downTo 2 step 4) {
            println(i)
        }
    }
    
    • 输出结果
    in the range
    -----------
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ------
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ---------
    2
    4
    6
    8
    10
    -------
    10
    6
    2
    
    

    示例代码

    fun main(args: Array<String>) {
        var i = 4
    
        if (i in 1..5) {
            println(i)
        }
    
        println("---------")
    
        for (a in 1..4) {
            println(a)
        }
    
        println("---------")
    
        for (a in 4..1) {
            println(a)
        }
    
        println("-----------")
    
        for (a in 4 downTo 1) {
            println(a)
        }
    
        println("----------")
    
        for (a in 1..6 step 2) {
            println(a)
        }
    
        println("---------")
    
        for (a in 6 downTo 1 step 2) {
            println(a)
        }
    
        println("---------")
    
        for (a in 1 until 6) {
            println(a)
        }
    }
    

    输出

    4
    ---------
    1
    2
    3
    4
    ---------
    -----------
    4
    3
    2
    1
    ----------
    1
    3
    5
    ---------
    6
    4
    2
    ---------
    1
    2
    3
    4
    5
    
    

    2.字符串数组遍历

    • 示例代码
    fun main(args: Array<String>) {
        var array = listOf<String>("hello", "world", "hello world", "welcome", "goodbye")
    
        for (item in array) {
            println(item)
        }
    
        println("--------")
    
        when {
            "world" in array -> println("world in collection")
        }
    
        println("----------")
    
        array.filter { it.length > 5 }.map { it.toUpperCase() }.sorted().forEach { println(it) }
    
    }
    
    
    • 输出结果
    hello
    world
    hello world
    welcome
    goodbye
    --------
    world in collection
    ----------
    GOODBYE
    HELLO WORLD
    WELCOME
    
    

    3.多行三重引号的字符串

    三重引号字符串的目的,不仅在于避免转义字符字符,而且使它可以包含任何字符,包括换行符。

    • 示例代码
    fun main(args: Array<String>) {
        var array = listOf<String>("hello", "world", "hello world", "welcome", "goodbye")
    
        for (item in array) {
            println(item)
        }
    
        println("--------")
    
        when {
            "world" in array -> println("world in collection")
        }
    
        println("----------")
    
        array.filter { it.length > 5 }.map { it.toUpperCase() }.sorted().forEach { println(it) }
    
    }
    
    • 输出结果
    hello \n world
    hello
            \n world
            welcome
            
    

    4.面向对象的Kotlin

    1)在Kotlin中,一个类的可以有一个primary构造方法以及一个或者多个secondary构造方法。
    2)primary构造方法是类头(Class header)的一部分,它位于类名后面,可以拥有若干参数。
    3)如果primary构造方法没有任何注解或者可见性关键字修饰,那么constructor关键字可省略。

    • 示例代码
    package com.leofight.kotlin
    
    class EmptyClass
    
    class MyClass constructor(username: String) {
        init {
            println(username)
        }
    
        private val username: String = username.toUpperCase()
    }
    
    fun main(args: Array<String>) {
        var myClass = MyClass("zhangsan")
    }
    
    • 运行结果
    zhangsan
    

    相关文章

      网友评论

          本文标题:4.RangeTo与面向对象的Kotlin

          本文链接:https://www.haomeiwen.com/subject/tjpfgxtx.html