Kotlin 帶你飛 ? 語法篇 ? 函數(shù)



本文采用與 Java 語法作對比的方式羅列并介紹** Kotlin 的函數(shù)用法**嘀略。依然是類似《Kotlin 帶你飛 ? 語法篇 ? 基礎(chǔ)》的套路,希望能對看到這篇文章的您有所幫助吧。

相關(guān)文章:

Kotlin 帶你飛
Kotlin 帶你飛 ? 語法篇 ? 基礎(chǔ)
Kotlin 帶你飛 ? 實戰(zhàn)篇
相關(guān) Github 源碼

版權(quán)聲明:本文為 frendy 原創(chuàng)文章,可以隨意轉(zhuǎn)載,但請務(wù)必在明確位置注明出處。


Basic Function

Java

public void hello() {
  System.out.print("Hello World!");
}

Kotlin

fun hello() {
    println("Hello World!")
}

Arguments

Java

public void hello(String name){
  System.out.print("Hello " + name + "!");
}

Kotlin

fun hello(name: String) {
    println("Hello $name!")
}

Default Values

Java

public void hello(String name) {
  if (name == null) {
    name = "World";
  }

  System.out.print("Hello " + name + "!");
}

Kotlin

fun hello(name: String = "World") {
    println("Hello $name!")
}

Return

Java

public boolean hasItems() {
  return true;
}

Kotlin

fun hasItems() : Boolean {
    return true
}

Single-Expression

Java

public double cube(double x) {
  return x * x * x;
}

Kotlin

fun cube(x: Double) : Double = x * x * x

Vararg

Java

public int sum(int... numbers) { }

Kotlin

fun sum(vararg x: Int) { }

Main

Java

public class MyClass {
    public static void main(String[] args) {  }
}

Kotlin

fun main(args: Array<String>) {  }

Named Arguments

Java

public static void main(String[]args){
  openFile("file.txt", true);
}

public static File openFile(String filename, boolean readOnly) { }

Kotlin

fun main(args: Array<String>) {
  openFile("file.txt", readOnly = true)
}

fun openFile(filename: String, readOnly: Boolean) : File { }

Optional Arguments

Java

public static void main(String[]args){
  createFile("file.txt");

  createFile("file.txt", true);

  createFile("file.txt", true, false);

  createExecutableFile("file.txt");
}

public static File createFile(String filename) { }

public static File createFile(String filename, boolean appendDate) { }

public static File createFile(String filename, boolean appendDate, boolean executable) { }

public static File createExecutableFile(String filename) { }

Kotlin

fun main(args: Array<String>) {
  createFile("file.txt")

  createFile("file.txt", true)
  createFile("file.txt", appendDate = true)

  createFile("file.txt", true, false)
  createFile("file.txt", appendDate = true, executable = true)

  createFile("file.txt", executable = true)
}

fun createFile(filename: String, appendDate: Boolean = false, executable: Boolean = false): File { }

Generic Methods

Java

public void init() {
  List<String> moduleInferred = createList("net");
}

public <T> List<T> createList(T item) { }

Kotlin

fun init() {
  val module = createList<String>("net")
  val moduleInferred = createList("net")
}

fun <T> createList(item: T): List<T> { }

Data Classes - Destructuring

Java

public static void main(String[]args) {
    Book book = createBook();

    System.out.println(book);
    System.out.println("Title: " + book.title);
}

public static Book createBook(){
    return new Book("title_01", "author_01");
}

public class Book {
    final private String title;
    final private String author;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    @Override
    public String toString() {
        return "Title: " + title + " Author: " + author;
    }
}

Kotlin

fun main(args: Array<String>) {
    val book = createBook();
    // or
    val (title, author) = createBook()

    println(book)
    println("Title: $title")
}

fun createBook() : Book{
    return Book("title_01", "author_01")
}

data class Book(val title: String, val author: String)

愿大家都能飛得更高雄卷、飛得更開心...嗯,開心很重要...

qrcode_card.png


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末访得,一起剝皮案震驚了整個濱河市龙亲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悍抑,老刑警劉巖鳄炉,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搜骡,居然都是意外死亡拂盯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門记靡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谈竿,“玉大人,你說我怎么就攤上這事摸吠】胀梗” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵寸痢,是天一觀的道長呀洲。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么道逗? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任兵罢,我火速辦了婚禮,結(jié)果婚禮上滓窍,老公的妹妹穿的比我還像新娘卖词。我一直安慰自己,他們只是感情好吏夯,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布此蜈。 她就那樣靜靜地躺著,像睡著了一般噪生。 火紅的嫁衣襯著肌膚如雪舶替。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天杠园,我揣著相機與錄音,去河邊找鬼舔庶。 笑死抛蚁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惕橙。 我是一名探鬼主播瞧甩,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弥鹦!你這毒婦竟也來了肚逸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤彬坏,失蹤者是張志新(化名)和其女友劉穎朦促,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栓始,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡务冕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了幻赚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禀忆。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖落恼,靈堂內(nèi)的尸體忽然破棺而出箩退,到底是詐尸還是另有隱情,我是刑警寧澤佳谦,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布戴涝,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏喊括。R本人自食惡果不足惜胧瓜,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郑什。 院中可真熱鬧府喳,春花似錦、人聲如沸蘑拯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽申窘。三九已至弯蚜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剃法,已是汗流浹背碎捺。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贷洲,地道東北人收厨。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像优构,于是被迫代替她去往敵國和親诵叁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

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

  • 本文采用與 Java 語法作對比的方式羅列并介紹 Kotlin 類的用法钦椭。依然是類似《Kotlin 帶你飛 ? 語...
    _frendy閱讀 522評論 3 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,849評論 25 707
  • 六月未到來之時,我異常期待漫仆。 六月的第一天捎拯,有人和我說了“兒童節(jié)快樂”。 六月的第六天盲厌,我回到小鎮(zhèn)署照,和我微拍了紫薇...
    語小xiao沫閱讀 382評論 2 3
  • 正好閑暇時看了一篇對劉同《你的孤獨雖敗猶榮》的評價,突然就想到了一些小心事兒吗浩。 關(guān)于這類書建芙,我個人習(xí)慣稱之為心靈雞...
    sang魚閱讀 468評論 1 2
  • 期盼已久的西藏之旅即將開啟,心中有些興奮懂扼,但是沒想到還沒出發(fā)就給了我一個“驚嚇”禁荸。 此次西藏之旅帶著老爸和六六一老...
    心迪董閱讀 306評論 1 3