Kotlin 函數(shù)

https://try.kotlinlang.org這個(gè)可以運(yùn)行Kotlin代碼塊

1 .在Kotlin中創(chuàng)建集合

val set= hashsetOf(1,5,6)

val list = arrayListOf(1,6,45);

val map = hashMapOf( 1 to "one",? 5 to "five" ,53 to "fifty-three" )

Kotlin 中JavaClass 等價(jià)于 Java的getClass()

>>>printLn(list.javaClass)? ? ----->>> class java.util.Arraylist

Kotlin 中 可以獲取一個(gè)列表的最后的元素list.last()和最大元素list.max()

2. Kotlin函數(shù)中可以顯示地表明參數(shù)名稱。 但是在Java的函數(shù)中不能采用命名參數(shù)。

kotlin中可以聲明默認(rèn)參數(shù)值的函數(shù)。

fun <T> joinToString( collection : Collection<T>, separator : String=" ,"? ,prefix : String = "", postfix : String = "") :String?

上面的就是有默認(rèn)值得函數(shù)。調(diào)用這個(gè)函數(shù)可以省略掉部分參數(shù) 。但是沒有申明參數(shù)調(diào)用只能省略末尾的參數(shù),如果申明命名參數(shù)可以省略一些中間的一些參數(shù)

>>> jionToString(list,? ","? ,? " " , " ")

>>>jionToString(list)

3.Kotlin中可以把函數(shù)直接放到代碼文件的頂層,不用從屬于任何類。這些函數(shù)依然是包內(nèi)成員,如果你要從外部訪問它,則需要import。修改頂層函數(shù)的名稱需要給這個(gè)文件添加@JvmName的注解

頂層屬性:和函數(shù)一樣,屬性也可以放到文件的頂層。默認(rèn)情況下頂層屬性是通過服務(wù)器暴露給Java使用的(如果是val就只有一個(gè)getter,如果是var就對應(yīng)一對getter和setter)

const 用法 : const等同于Java的public static final?

const val UNIX="\n" 等同于Java的 public static final String UNIX="\n"

4. 擴(kuò)展函數(shù)和屬性

擴(kuò)展函數(shù)就是一個(gè)類的成員函數(shù),不過定義在類的外面。你只要把擴(kuò)展的類和接口的名稱,放到即將添加的函數(shù)前面

fun String.lastChar() : Char = this.get(this.length-1)

擴(kuò)展函數(shù)并不容許你打破他的封裝性,和在類的內(nèi)部定義方法不同的是,擴(kuò)展函數(shù)不能訪問私有或者是受保護(hù)的成員。

5.導(dǎo)入函數(shù)

自己定義的擴(kuò)展函數(shù),它不會自動地在整個(gè)項(xiàng)目范圍內(nèi)生效,如果要使用它需要導(dǎo)入。Kotlin 允許用和導(dǎo)入類一樣的語法來導(dǎo)入這個(gè)函數(shù)

import string.lastChar

也可以用*

import string.*

可以使用關(guān)鍵字as來修改導(dǎo)入的類和函數(shù)名稱

import strings.lastChar as last

val c="Kotlin".last()? 這樣就把lastChar改為last 方法

擴(kuò)展函數(shù)不可重寫。Kotlin中會把他們當(dāng)做靜態(tài)函數(shù)對待,擴(kuò)展函數(shù)在Java中編譯為靜態(tài)函數(shù)。

如果一個(gè)類有相同的成員函數(shù)和擴(kuò)展函數(shù),成員函數(shù)會優(yōu)先使用。在擴(kuò)展API中,有相同的成員函數(shù)和擴(kuò)展函數(shù),會重新編譯代碼,這將指向新的成員函數(shù)。

6.Kotlin中字符串的處理

1> 和Java使用相同的正則表達(dá)式

2>kotlin的split擴(kuò)展類可以指定多個(gè)分割符

3> Kotlin標(biāo)準(zhǔn)庫有一些可以獲取給定分割符的第一次(或最后一次)出現(xiàn)之前(或之后)的字符串的函數(shù)。

如:/Users/pyh/kotlin-book/chapter.adoc? 可以使用 substringBeforeLast 和 substringAfterLast 函數(shù)將一個(gè)路徑分割為目錄、文件名、擴(kuò)展名

4> 多行三重引號的字符串

一個(gè)三重引號的字符串可以包含換行,而不用專門的字符""" c:\Users\pyh\kotlin-book """

三重引號的字符串提供了一種簡潔的方式,解決了原本在Java中需要進(jìn)行大量啰嗦的轉(zhuǎn)義和字符串鏈接的問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 本文是在學(xué)習(xí)和使用kotlin時(shí)的一些總結(jié)與體會,一些代碼示例來自于網(wǎng)絡(luò)或Kotlin官方文檔,持續(xù)更新... 對...
    竹塵居士閱讀 3,479評論 0 8
  • 前言 人生苦多,快來 Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,688評論 9 118
  • 寫在開頭:本人打算開始寫一個(gè)Kotlin系列的教程,一是使自己記憶和理解的更加深刻,二是可以分享給同樣想學(xué)習(xí)Kot...
    胡奚冰閱讀 734評論 0 4
  • Scala與Java的關(guān)系 Scala與Java的關(guān)系是非常緊密的!! 因?yàn)镾cala是基于Java虛擬機(jī),也就是...
    燈火gg閱讀 3,608評論 1 24
  • 體驗(yàn):突然發(fā)現(xiàn)自己的不足,致命的不足,拿的起,卻放不下!改正,不輕易拿起,放下,要干凈利落,核心:不好高騖遠(yuǎn),轉(zhuǎn)身...
    郭家樂閱讀 135評論 0 0

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