Kotlin最基本用法

val 和 var 的使用規則
如果說 var 代表了 varible(變量),那麼 val 可看成 value(值)的縮寫。但也有人覺得這樣並不直觀或準確,而是把 val 解釋成 varible+final,即通過 val 聲明的變量具有 Java 中的 final 關鍵字的效果,也就是引用不可變。

Kotlin系列之let、with、run、apply、also函數的使用
內聯擴展函數之let

object.let{
   it.todo()//在函數體內使用it替代object對象去訪問其公有的屬性和方法
   ...
}
//另一種用途 判斷object爲null的操作
object?.let{//表示object不爲null的條件下,纔會去執行let函數體
   it.todo()
}

** [內聯函數]之with**

適用於調用同一個類的多個方法時,可以省去類名重複,直接調用類的方法即可,經常用於Android中RecyclerView中onBinderViewHolder中,數據model的屬性映射到UI上

java 
@Override
public void onBindViewHolder(ViewHolder holder, int position) {

   ArticleSnippet item = getItem(position);
        if (item == null) {
            return;
        }
        holder.tvNewsTitle.setText(StringUtils.trimToEmpty(item.titleEn));
        holder.tvNewsSummary.setText(StringUtils.trimToEmpty(item.summary));
        String gradeInfo = "難度:" + item.gradeInfo;
        String wordCount = "單詞數:" + item.length;
        String reviewNum = "讀後感:" + item.numReviews;
        String extraInfo = gradeInfo + " | " + wordCount + " | " + reviewNum;
        holder.tvExtraInfo.setText(extraInfo);
        ...
}

kotlin

override fun onBindViewHolder(holder: ViewHolder, position: Int){
   val item = getItem(position)?: return
   
   with(item){
   
      holder.tvNewsTitle.text = StringUtils.trimToEmpty(titleEn)
       holder.tvNewsSummary.text = StringUtils.trimToEmpty(summary)
       holder.tvExtraInf.text = "難度:$gradeInfo | 單詞數:$length | 讀後感: $numReviews"
       ...   
   
   }

}

內聯擴展函數之apply
從結構上來看apply函數和run函數很像,唯一不同點就是它們各自返回的值不一樣,run函數是以閉包形式返回最後一行代碼的值,而apply函數的返回的是傳入對象的本身。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章