快速入坑Kotlin之基本使用姿勢

上回說到Kotlin使用的基本配置和一些基本特性,美中不足的,還差那么一丟丟姿勢拭卿。
本次羅列一下基本姿勢骡湖。最終目的,只要錢給到位峻厚,什么姿勢都會~

1.函數(shù)

Kotlin中函數(shù)基本示意圖:


image.png
eg.
fun testFucntion(a: Int,b: Int): Int {
return if (a > b) a else b
}
println(testFucntion(1, 2))

注:與Java相比响蕴,每句話結(jié)束并不需要分號;

2. 變量

val name = "hello world"  【常量,相當于JAVA中的final修飾符】
val age = 12              【等價于 val age: Int = 12,常量age】
var age= 12               【變量 age】

注:val用于聲明常量惠桃,var用于聲明變量

3.類和屬性

在JAVA中的寫法
/* Java */
public class Person {
private final String name;
public Person(String name) {
this.name = name;
} 
public String getName() {
return name;
}
}
    
在Kotlin中的寫法
/* Kotlin */
class Person(val name: String)

4.接口(Interface)

/**Kotlin*/
 interface Clickable {
 fun click()
 }
 class Button : Clickable{
   override fun onClick(){
  //implemented
   }
 }

注:Kotlin在類名后面使用一個冒號來替代Java中的 extends 和 implements 關鍵詞浦夷。

5.數(shù)組

先看Java中數(shù)組的聲明:
String[] colors = new String[]{"Red", "Green", "Yellow"};
String[] emptyStrings = new String[7];

在kotlin中數(shù)組的聲明:
val names: Array<String> = arrayOf("Red", "Green", "Yellow")
val emptyStrings: Array<String?> = arrayOfNulls(7)

6.可變參數(shù)

 /** JAVA */
void function(String... parameters){
   ...
} 
/**Kotlin*/可變參數(shù)( Varargs) : 可以接受任意個參數(shù)的函數(shù)
void function(vararg parameters : String){
   ...
}

7.實例化

/**JAVA*/
Date date = new Date();
/**Kotlin*/告別new
val date = Date()

8.Lambda表達式

  • Lambda作為方法參數(shù)的代碼塊

     以JAVA代碼示例:
    /* Java */
    button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
    /* actions on click */
    }
    });
    /**Kotlin*/
     button.setOnClickListener { /* actions on click */ }
    
  • Lambda與集合

     val people = listOf(Person("Alice", 29), Person("Bob", 31))
     println(people.maxBy { it.age }) // 通過比較年齡找出最大值
    

注:maxBy函數(shù)可以在任何集合中被調(diào)用,而它只需要一個參數(shù):指定什么樣的值應該進行比較來找到最大值元素的函數(shù)辜王。大括號中的代碼 { it.age } 是一個實現(xiàn)這樣的邏輯的lambda劈狐。

  • Lambda表達式語法
image.png
val sum = { x: Int, y: Int -> x + y }
println(sum(1, 2))
  • forEach中的Lambda

    fun printMessageWithPrefix(messages: Collection<String>,
     error: String) {
       messages.forEach {
           print("$error$it")
        }
    }
    testLambda(){
     val listOf = listOf<String>("403 Forbidde","404 Not found")
     printMessageWithPrefix(listOf,"error")
    }
    

9.集合函數(shù)式API

  • filter

    filter 函數(shù)變換一個集合,并過濾出不滿足給定斷言的元素:
    val list = listOf(1, 2, 3, 4)
    list.filter { it % 2 == 0 }
    >>[2, 4]
    
  • map

    map 函數(shù)對集合中的每個元素應用給定的函數(shù)呐馆,并且收集結(jié)果形成新的集合
    val list = listOf(1, 2, 3, 4)
    list.map { it * it }
    >>[1, 4, 9, 16]
    
  • filter和map共用

    people.filter { it.age > 30 }.map(Person::name)
    
  • groupBy

    val people = listOf(Person("Alice", 31),
    ...
      Person("Bob", 29), Person("Carol", 31))
    >>println(people.groupBy { it.age })
      一個映射通過鍵被分成多個組
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肥缔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子汹来,更是在濱河造成了極大的恐慌续膳,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俗慈,死亡現(xiàn)場離奇詭異姑宽,居然都是意外死亡遣耍,警方通過查閱死者的電腦和手機闺阱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舵变,“玉大人酣溃,你說我怎么就攤上這事〖拖叮” “怎么了赊豌?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绵咱。 經(jīng)常有香客問我碘饼,道長,這世上最難降的妖魔是什么悲伶? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任艾恼,我火速辦了婚禮,結(jié)果婚禮上麸锉,老公的妹妹穿的比我還像新娘钠绍。我一直安慰自己,他們只是感情好花沉,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布柳爽。 她就那樣靜靜地躺著媳握,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磷脯。 梳的紋絲不亂的頭發(fā)上蛾找,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音赵誓,去河邊找鬼腋粥。 笑死,一個胖子當著我的面吹牛架曹,可吹牛的內(nèi)容都是我干的隘冲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼绑雄,長吁一口氣:“原來是場噩夢啊……” “哼展辞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起万牺,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤罗珍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脚粟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體覆旱,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年核无,在試婚紗的時候發(fā)現(xiàn)自己被綠了扣唱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡团南,死狀恐怖噪沙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吐根,我是刑警寧澤正歼,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站拷橘,受9級特大地震影響局义,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冗疮,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一萄唇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赌厅,春花似錦穷绵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勾缭。三九已至,卻和暖如春目养,著一層夾襖步出監(jiān)牢的瞬間俩由,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工癌蚁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幻梯,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓努释,卻偏偏與公主長得像碘梢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伐蒂,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容