zoukankan      html  css  js  c++  java
  • kotlin 1

    页面跳转  startActivity(Intent(MainActivity@this, SecondActivity::class.java))
     or   startActivity(Intent(this@MainActivity, SecondActivity::class.java))
     or   startActivity(Intent(this, SecondActivity::class.java))
    findviewbyid 直接写控件名称

    ?操作符:

    在变量后面加 ? 代表此为可控变量
    var name: String? = "zhangsan"

    若str无法转为int类型,则返回null
    fun parseInt(str:String):Int ?{
    }
    如果b非空,返回b.length;否则,返回null,此类型为Int ?。
    b?.length

    ?:操作符
    如果 ?: 左侧表达式非空,elvis操作符就返回其左侧表达式,否则返回右侧表达式。请注意,当且仅当左侧为空时,才会对右侧表达式求值。
    if/else方法:
    val l:Int if(b!=null) b.length else -1
    Elvis
    val l=b?.length ?: -1

     ==与===

    ==  判断是否相等

    ===判断是否完全相等

    !!

    这会返回一个非空的b值,若b为空,则抛出一个空指针异常

    val l = b!!.length

    .. 闭区间运算符 x到y的闭区间,包含x和y

    until 半闭区间运算符,包含x不包含y

    in 代表在一个区间内,!in代表不在一个区间内

    if(i in 1..10)     如果i在1-10内,包含1,10

    for(i in 1 until 10)  如果i在1-10内,不包含10

    downTo()函数

    for(i in 4 downTo 1){    倒序遍历,输出:4 3 2 1 

    println(i)

    }

    step()函数  迭代函数

    for(i in 1..4  step 2){  输出 1 3

    print(i)

    }

    for(i in 4 downTo 1 step 2){  输出 4 2

    print(i)

    }

    ::符号   得到类的class对象

    startActivity(Intent(MainActivity@this,secondActivity::class.java))

    @符号  :

    1.限定this的类型

    class User {
    inner class State{
    fun getUser(): User{
    //返回User
    return this@User
    }
    fun getState(): State{
    //返回State
    return this@State
    }
    }
    }
    2.作为标签

    跳出for循环

    loop@ for (itemA in arraysA) {
    var i : Int = 0
    for (itemB in arraysB) {
    i++
    if (itemB > 2) {
    break@loop
    }

    println("itemB:$itemB")
    }

    }

    as?操作符

    当使用 as 转型的时候,可能会经常出现 ClassCastException

    所以用as?,当转型不成功,将返回null

    val m : Int? = a  as? Int

     冒号:

    用于类的继承以及变量的定义

    1.类型和超类型之间的冒号前要有一个空格

    2.实例和类型之间的冒号前不要空格

    定义全局变量时:

    var str: String? = null

    类的继承与变量定义

    class TestActivity<T : Serializable>(str: String) : Activity{}

    类型判断符 is

    检查某个实例是否为某个类型,若判断出属于某个类型,那么判断后的分支可直接当某类型使用,无需显式转换

     

    fun getStringLength(obj: Any): Int? {
    //obj在&&右边自动动转换成"String"类型
    if (obj is String && obj.length > 0)
    return obj.length
    return null
    }

    多行输入符 三个双引号
        三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,

    之中的单号和双引号不用转义,其中的不      可见字符比如/n和/t都会被保留。

    val str = """
    one
    two
    """
    //等价于
    val str = "one two"
    val str = "one" +" "+"two"

    $操作符
        字符串可以包含模板表达式,及一小段代码,会求值并把结果包含到字符串中。模板字符串以美元符号$开头,由一个简单的      名字构成:

    val value:Int=5;
    val str:String="the value is $value"
    println("itemB:$itemB")
    //字符串模板
    var userInfo = "name:${user.name}, age:$age"
        或花括号括起来的任意表达式
    val g:Int=2
    val h:Int=3
    val str:String="g+h=${g+h}"
        转义字符串和原生字符串都支持模板字符串。如果想要在原生字符串中使用$(它不支持反斜杠转义),可以使用以下语法:
    val str:String="""the price is ${'$'}199"""



















  • 相关阅读:
    整数数组的组合问题
    C++ 虚函数与纯虚函数 浅析
    NetBeans 8.0 连接远程服务器
    R语言画图教程之盒形图
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    Python技巧—list与字符串互相转换
    Python技巧—list与字符串互相转换
    sas正则式之prxparen
    sas正则式之prxparen
  • 原文地址:https://www.cnblogs.com/acg88688/p/10676953.html
Copyright © 2011-2022 走看看