1. 程式人生 > >Android Kotlin 將函式作為引數傳遞

Android Kotlin 將函式作為引數傳遞

Kotlin支援函式作為引數傳遞,無需構建物件來包裝函式。

1、呼叫一個無返回的函式作為引數傳遞為:方法名()-> Unit

class MainActivity : AppCompatActivity() {
    private val TAG:String = "MainActivity.kt"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        getResults { logDebug("Hello World"
) } //在kotlin中如果傳入的引數是函式,可以省略括號 } fun logDebug(msg:String) { Log.d(TAG,msg) } /** * 在 Kotlin 中無返回為 Unit * * 此方法接收一個無引數的函式並且無返回 */ private fun getResults(method: () -> Unit) { method() } }

2、呼叫一個有返回引數的函式作為引數傳遞為:方法名()-> 返回型別

 /**
     * @param
str1 引數1 * @param str2 引數2 */
fun getResult(str1: String, str2: String): String = "result is {$str1 , $str2}" /** * 此方法接收一個返回String型別的方法 */ private fun logDebug(method: () -> String) { Log.d(TAG,method()) }

本篇文章就到這裡了,有不足的還望指導,感謝各位^_^

相關推薦

Android Kotlin 函式作為引數傳遞

Kotlin支援函式作為引數傳遞,無需構建物件來包裝函式。 1、呼叫一個無返回的函式作為引數傳遞為:方法名()-> Unit class MainActivity : AppCompatActivity() { private val TA

Kotlin函式作為引數傳遞,使用雙冒號::引用其他方法

Kotlin 中 雙冒號操作符 表示把一個方法當做一個引數,傳遞到另一個方法中進行使用,通俗的來講就是引用一個方法。先來看一下例子: fun main(args: Array<String>) { println(lock("param1", "param2", ::get

Matlab中如何(自定義)函式作為引數傳遞給另一個函式

原文連結:http://blog.sina.com.cn/s/blog_53f2911901000a1h.html 假如我們編寫了一個積分通用程式,想使它更具有通用性,那麼可以把被積函式也作為一個引數。在c/c++中,可以使用函式指標來實現上邊的功能,在matlab中如何實現呢?使用函式控

關於陣列作為引數傳遞函式的簡單使用

簡單的方式可以將陣列作為一個全域性變數,然後就可以在函式中使用了. 另外的一種方式為: function1(int a[]) { cout<<a[0]<<end

React Native之函式作為引數傳遞給另外一個函式去呼叫

1 用法 我們一般喜歡把js裡面的函式作為引數傳遞給另外一個函式,然後再呼叫這個函式,有點像C語言裡面的函式指標         2 程式碼測試 寫了一個函式,2個引數分別是函式,然後更具資料決定呼叫哪個函式 /** *

物件作為引數傳遞給方法

要求: (1)定義一個Circle類,包含一個double型的radius屬性代表圓的半徑,一個findArea()方法返回圓的面積。 (2)定義一個類PassObject,在類中定義一個方法printAreas(),該方法的定義如下: public void printAreas(Cirl

【C++】結構作為引數傳遞並返回

#include"iostream.h" #include"stdio.h" #include"string.h" struct Date { int day,month,year; }; Dat

C# 委託的應用1:方法作為引數傳遞給另一個方法

     長期以來,c和c++的程式設計師利用方法指標,將方法作為引數傳給另一個方法。c#使用委託來提供相同的功能,它將方法作為物件封裝起來,允許在執行時間接地繫結一個方法呼叫。      下面將通過氣泡排序的例子講解委託的產生     示例1 :該方法對一個整數陣列執行升

JS函式作為引數傳遞

//JS中關於把函式作為函式的引數來傳遞的問題的小總結//第一,最簡單的形式無參函式,直接形式函式的函式名放到括號中,再在執行部分這個函式即可。//當然呼叫時要穿另一個真正的定義好的函式/*function test1(Func){Func();}function test2

python隨筆——函式作為引數傳入函式

①測試一個樣例: # 測試函式作為引數 def fun1(fun): print("---------------------") fun() print("---------------------") def fun2(): prin

函式名(地址)作為引數傳遞

#include<stdio.h> int add(int a,int b) { return a+b; } int AAA(int a,int b,int(*p)(int,int)) //注意定義的函式指標 { return p(a,b);//通過函式指標p呼

C語言 函式(有參、無參)作為引數傳遞

在學習中遇到一個問題,就是要計算出一個函式的執行時間,但是我不可能每個函式都去執行一次clock,所以這裡要想統一處理這個問題就需要把函式作為引數傳入到方法內。 首先是是無參函式作為的傳遞: void printTest_0() { printf("%s", "prin

字串作為引數函式

字串是有一系列字元組成,以空值字元結尾。 將字串作為引數來傳遞,實際上傳遞的是字串的第一個字元的地址。字串函式原型應將其表示字串的形參申明為char *型別。 假設要將字串作為引數傳遞給函式,則表示字串的方式有三種: char 陣列名; 用引號的字串

電影檔案排序—函式作為引數和返回值,理解js提供的sort氣泡排序

要點: 1.理解函式作為引數和作為返回值,就是將函式的處理結果直接使用了,而沒有進行用第三個變數進行接收而已。 2.js提供的sort氣泡排序演算法是不穩定的,需要加一步比較兩個物件的操作,同時想要進行降序排序只要將返回的值改變一下,即可改變升降排序,不需要重寫。 程式碼: <

在 Angularjs 中 ui-sref 和 $state.go 如何傳遞單個多個引數物件作為引數

二:傳遞多個引數其實也很簡單可以在上面的單個後面直接拼 1:目標頁面定義需要傳的傳輸個數 .state("default.certquery", { url: "/certquery", controller: "certQueryCtrl", params:{"LoginA

Angularjs 中 ui-sref 和 $state.go 如何傳遞單個多個引數物件作為引數

一: 如何傳遞單個引數 首先,要在目標頁面定義接受的引數: 傳參, ui-sref: $state.Go: 接收引數, 在目標頁面的controller裡注入 stateParams,然後" stateParams,然後 "stateP

JavaScript中函式作為引數進行傳遞時的括號問題

JS中經常會遇到把一個函式作為引數傳遞給另一個函式。那麼通常作為引數進行傳遞的函式要不要加括號呢? 這裡就要講到括號的二義性: 當函式名後加上括號時,通常會執行函式體本身。如果函式有返回值時,此時會

Android Context作為引數傳遞this

將彈出框作為函式封裝後引數為Context,供其他的類呼叫時,將this作為引數傳入,總會報空指標錯誤,開始想不明白,後來終於解決了,方法如下: 首先我們在類中建立建構函式: public TakeMediaDialog(Context test) {

關於二維陣列作為引數傳遞函式的問題

剛碰到要寫一個函式func,要傳入一個二維陣列給該函式,於是寫成func(int a[][]);但馬上又發現將二維陣列傳給函式時必須指定第二維的維數,因為函式傳遞的是一個指向一個一維陣列的指標,這個一維陣列中儲存有著若干元素的陣列,所以函式必須要知道這個指標所指向物件的資訊

函式作為引數

在JS中,將函式作為引數,這樣可以繼執行函式的一些功能,比如回撥. var runFun = function (callback) {var a1 = 10;if ($.isFunction(callback)) {callback(a1);}}; runFun (function (a2){