傳值呼叫和傳名呼叫

2021-10-20 00:23:37 字數 681 閱讀 2174

共用**:

//傳值呼叫和傳名呼叫

var money =

100//定義乙個花錢的方法

//花錢

def buy()

: unit =

//查詢

def see()

=

當傳入引數為乙個具體的數值時,引數的值一旦確定,就不會改變。

def value

(x:int)

: unit =

}

value(see())執行結果:

money=95

money=95

money=95

money=95

money=95

將函式作為引數,假設接收該函式返回值的變數為x,每當方法體內部呼叫該變數的時候,該變數所對應的函式也會相應的執行一次。

def key

(x:=

> int)

: unit =

}

key(see())的執行結果為:

money=90

money=85

money=80

money=75

money=70

Scala 傳值呼叫和傳名呼叫

傳值呼叫時,引數只在呼叫時計算一次,後續重複使用計算的結果 傳名呼叫時,引數在呼叫時不會計算,只有真正用到引數的時候才會計算 x int object scalafunction def printbyname x int unit def printbyvalue x int unit def m...

scala 傳值呼叫,傳名呼叫

scala的直譯器在解析函式引數 function arguments 時有兩種方式 在進入函式內部前,傳值呼叫方式就已經將引數表示式的值計算完畢,而傳名呼叫是在函式內部進行引數表示式的值計算的。這就造成了一種現象,每次使用傳名呼叫時,直譯器都會計算一次表示式的值。傳名呼叫時,接受表示式的形參定義一...

Scala的傳值呼叫與傳名呼叫理解

通常函式 方法的引數是傳值引數,也就是說,引數的值在傳遞給函式之前已經確定好了。而在scala中,方法或函式的引數可以是乙個表示式,也就是可以將乙個 邏輯傳遞給某個方法或著函式。這有點像c語言 1.scala的傳值呼叫 call by value 引數是乙個或多個型別的變數 2.scala的傳名呼叫...