美文网首页
kotlin开篇

kotlin开篇

作者: most_xiaoya | 来源:发表于2018-12-29 17:53 被阅读0次

按照惯性 先来一波基础中的基础 :
1.变量和常量:
* 变量的申明 主要有两种 var 和val 请注意最后一个字母
* var :声明 可变 变 量,默认为private。 帮助记忆: variable 可变的
* val :声明 只读 变 量 ,默认为private。
* 一个是可变 一个是只读 只读 只能赋值一次 这个尤其重要。
eg:

   // 如果赋了初始值值,可以省略数据类型
    val a = 1.0
    val b: Int = 1
    var painNum = ""
    val num = 23
    var g = 33
     g += 1
//    num+=2;//会报错; 说好的只读  只能赋值一次;
  // ${a}类似于String.valueof(a)
  Log.e("Xiaoya", "value num :${a}")

另外 ~~ 敲黑板~~~~ 在kotlin中取消了static关键字 那我想用咋办 ,这不出来了一个const关键字儿,咋用?

val MainStartActivity = "/main/StartActivity"

这只是一个对象,而如果我们想在其他的类里边使用,而又不想实例化这个类,我们就会想到静态变量了,但是 Kotlin 取消了 static 关键字,我们又该怎么写呢?代码如下:

const val MainStartActivity = "/main/StartActivity"

使用如下:

var path = MainStartActivity

之所以不是类名.对象,因为Kotlin 已经自动完成了导包。
下面再来两个栗子🌰:

val MainStartActivity = "/main/StartActivity"
 
//对应的 Java 代码
 
public final class ActivityPathToolKt {
   @NotNull
   private static final String MainStartActivity = "/main/StartActivity";
 
   @NotNull
   public static final String getMainStartActivity() {
      return MainStartActivity;
   }
}
const val MainStartActivity = "/main/StartActivity"
 
//对应的 Java 代码如下:
 
public final class ActivityPathToolKt {
   @NotNull
   public static final String MainStartActivity = "/main/StartActivity";
}

另外需要注意:const只能修饰val,不能修饰var
再来个常量类的栗子🌰:

class Constans {
    companion object {
        const val LOGIN_SUC = "login_suc"
        const val LOGIN_FAIL = "login_fail"
    }
}

下面是使用:

  Log.d("Xiaoya", LOGIN_SUC + LOGIN_FAIL)

2.Kotlin中修饰可见性一共四个关键字:

  • public:默认修饰符,全局可见。

  • private:作用域仅为当前所在源文件。val常量和var变量,默认都是private的。

  • internal:作用域为当前模块。同一模块都可见。

  • protected:作用域为当前所在类以及其子类
    3.数据类型

  • 数字
    Kotlin 提供了如下的内置类型来表示数字(与 Java 很相近)。
    Type Bit width
    Double 64
    Float 32
    Long 64
    Int 32
    Short 16
    Byte 8
    这里要说明一下,Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。如不支持数字隐式拓宽转换,即自动向上转型(如 Java 中 int 可以隐式转换为long)。

  • 字符
    字符用 Char 类型表示。它们不能直接当作数字.字符字面值用单引号括起来: ‘1’。 特殊字符可以用反斜杠转义。 支持这几个转义序列:\t、 \b、\n、\r、\’、\”、\ 与 $。 编码其他字符要用 Unicode 转义序列语法:’\uFF00’。

  • 布尔
    布尔用 Boolean 类型表示,它有两个值:true 与 false。这个和Java是一样的。

  • 数组
    数组在 Kotlin 中使用 Array 类来表示,它定义了 get 与 set 函数(按照运算符重载约定这会转变为 [])以及 size 属性,以及一些其他有用的成员函数
    4.方法的申明;

 /**
     * 普通方法  有return  第一种写法
     */
    fun add(num1: Int, num2: Int): Int {
        return num1 + num2
    }

    /**
     * 普通方法  有return  第二种写法
     */
    fun add(num1: Int, num2: Int, num3: Int): Int = num1 + num2 + num3


    /**
     * 普通方法  无return  第一种写法
     */
    fun printAdd(num1: Int, num2: Int): Unit {
        Log.e("Xiaoya", (num1 + num2).toString())
    }

    /**
     * 普通方法  无return  第二种写法   Unit 可以省略
     */
    fun printAdd(num1: Int, num2: Int, num3: Int) {

        Log.e("Xiaoya", (num1 + num2 + num3).toString())
    }

    /**
     *  三元表达式 可读性强;
     */
    fun max(a: Int, b: Int) = if (a > b) a else b

相关文章

网友评论

      本文标题:kotlin开篇

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