kotlin開篇

按照慣性 先來一波基礎(chǔ)中的基礎(chǔ) :
1.變量和常量:
* 變量的申明 主要有兩種 var 和val 請注意最后一個字母
* var :聲明 可變 變 量,默認為private。 幫助記憶: variable 可變的
* val :聲明 只讀 變 量 ,默認為private。
* 一個是可變 一個是只讀 只讀 只能賦值一次 這個尤其重要。
eg:

   // 如果賦了初始值值,可以省略數(shù)據(jù)類型
    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關(guān)鍵字 那我想用咋辦 ,這不出來了一個const關(guān)鍵字兒,咋用?

val MainStartActivity = "/main/StartActivity"

這只是一個對象,而如果我們想在其他的類里邊使用,而又不想實例化這個類,我們就會想到靜態(tài)變量了,但是 Kotlin 取消了 static 關(guān)鍵字,我們又該怎么寫呢?代碼如下:

const val MainStartActivity = "/main/StartActivity"

使用如下:

var path = MainStartActivity

之所以不是類名.對象,因為Kotlin 已經(jīng)自動完成了導(dǎo)包。
下面再來兩個栗子??:

val MainStartActivity = "/main/StartActivity"
 
//對應(yīng)的 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"
 
//對應(yīng)的 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中修飾可見性一共四個關(guān)鍵字:

  • public:默認修飾符,全局可見。

  • private:作用域僅為當(dāng)前所在源文件。val常量和var變量,默認都是private的。

  • internal:作用域為當(dāng)前模塊。同一模塊都可見。

  • protected:作用域為當(dāng)前所在類以及其子類
    3.數(shù)據(jù)類型

  • 數(shù)字
    Kotlin 提供了如下的內(nèi)置類型來表示數(shù)字(與 Java 很相近)。
    Type Bit width
    Double 64
    Float 32
    Long 64
    Int 32
    Short 16
    Byte 8
    這里要說明一下,Kotlin 處理數(shù)字在某種程度上接近 Java,但是并不完全相同。如不支持數(shù)字隱式拓寬轉(zhuǎn)換,即自動向上轉(zhuǎn)型(如 Java 中 int 可以隱式轉(zhuǎn)換為long)。

  • 字符
    字符用 Char 類型表示。它們不能直接當(dāng)作數(shù)字.字符字面值用單引號括起來: ‘1’。 特殊字符可以用反斜杠轉(zhuǎn)義。 支持這幾個轉(zhuǎn)義序列:\t、 \b、\n、\r、\’、\”、\ 與 $。 編碼其他字符要用 Unicode 轉(zhuǎn)義序列語法:’\uFF00’。

  • 布爾
    布爾用 Boolean 類型表示,它有兩個值:true 與 false。這個和Java是一樣的。

  • 數(shù)組
    數(shù)組在 Kotlin 中使用 Array 類來表示,它定義了 get 與 set 函數(shù)(按照運算符重載約定這會轉(zhuǎn)變?yōu)?[])以及 size 屬性,以及一些其他有用的成員函數(shù)
    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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容