函數聲明和平時我見到的有點不太同樣,使用關鍵字fun來聲明。(感受好歡樂的樣子···O(∩_∩)O~~)函數
下面的示例,簡單的聲明瞭一個函數:this
1 // 這是函數聲明 2 fun this_is_a_function() { 3 // 這裏是函數內部 4 }
好,下面咱們一步一步來,首先是有返回值的函數,在函數聲明後添加冒號,並寫上返回值類型:(這裏返回的是Int類型~~~)spa
1 // 這是有返回值的函數聲明 2 fun this_is_a_function_by_return() : Int { 3 return 1 4 }
這裏須要注意的一點是,像Java、C#這樣的語言是須要在一行代碼結束後加入分號的,而Kotlin則不是必須的,加不加均可以。code
繼續,咱們來看如何傳遞參數進入一個函數,而且沒有返回值:blog
// 這是須要傳一個參數,而且無返回值的函數聲明 fun function_name(name: String) { println(name) }
這裏的參數類型是String。傳遞的參數能夠是一個函數哦~get
1 // 聲明一個(傳遞一個參數的函數)的函數,並沒有返回值 2 fun function1(f : (Int)) = println(f) 3 // 聲明一個(傳遞兩個參數的函數)的函數,並有返回值 4 fun function2(f : (Int, Int) -> Int) = f(1, 2) 5 6 // 調用function2 7 val sum = { x: Int, y: Int -> x + y} 8 function2(sum) // 返回3
繼續傳參,咱們來看看傳入多個參數並有返回值要如何寫:io
// 這裏是傳入多個參數,而且返回一個值的函數 fun sum(num1: Int , num2: Int) : Int { return num1 + num2 }
Kotlin還提供了一些簡單的寫法來聲明函數:function
若是函數返回一個簡單的值,便可使用等號直接返回,並能夠省略返回值類型:class
// 這個函數返回一個43的Int值 fun getInt43() = 43
當是一個公開函數時,使用public關鍵字,而且不能夠忽略返回值類型:module
// 這是一個公開的函數,必須聲明返回值類型 public fun getInt43() : Int = 43
在module內可見,則須要使用關鍵字internal:
// 這是一個module內部可見的函數 internal fun getInt43() = 43
ok~,函數聲明完成後,咱們來看看函數如何調用~
// 調用this_is_a_function函數 this_is_a_function()
感受好簡單···(\(≧▽≦)/)
有返回值的函數調用如何進行?
// 調用返回Int值的函數this_is_a_function_by_return var number = this_is_a_function_by_return()
傳參怎麼進行???和其餘的同樣,不過還能夠定義傳參的順序~感受萌萌噠(~\(≧▽≦)/~啦啦啦)
// 聲明一個函數sum fun sum(num1:Int, num2:Int) : String = num1.toString() + "+" + num2.toString() // 這裏是傳參 sum(1, 2) // 返回 1+2 sum(num1 = 1, num2 = 2) // 返回 1+2 sum(num2 = 1, num1 = 2) // 返回 2+1