將變數做為引數傳遞給方法
1subtest()
2dim a as
integer
3 a = 1
4add a
5 debug.print a '引用傳遞,a的值發生了變化,
輸出101
6end sub78
function add(a as
integer
)9 a = a + 100
10end function
結論:vb傳參時預設是引用傳遞byref。
使用byval關鍵字強制形參為值傳遞
1subtest()
2dim a as
integer
3 a = 1
4add a
5 debug.print a '值傳遞,a的值沒有變化,
輸出16
end sub78
function add(byval a as
integer
)9 a = a + 100
10end function
呼叫乙個有返回值函式
1subtest()
2dim a as
integer
3 a = 1
4dim sum as
integer
5 sum =add(a)
6 debug.print sum '引用傳遞,
輸出101
7end sub89
function add(a as
integer) as
integer
10 add = a + 100
11end function
認識「()」
1subtest()
2dim a as
integer
3 a = 1
4add (a)
5 debug.print a 'a的值沒有變化,
輸出16
end sub78
function add(byref a as
integer) as
integer
9 a = a + 100
10end function
解釋:
1、add只有乙個引數,並且是「過程式呼叫」方式的時候,vbe「偷偷」把**自動改為了add (a)。注意,add和(a)之間有個「空格」
2、()在此有完全不同的意義,可以理解它是乙個運算子。(a)生成了乙個臨時變數,a的乙個副本,然後將這個臨時變數(a)傳遞給add
3、a本身並沒有傳遞給add方法,所以a的值並不會有任何變化。
將乙個陣列做為引數傳遞給方法:
1subtest()
2dim arr(2) as
integer
3 arr(0) = 1
4 arr(1) = 2
5 arr(2) = 367
showarray arr
8dim i as
integer
9for i = 0to2
10 debug.print arr(i) '
輸出101,102,103
11nexti12
end sub
1314
function showarray(arr() as
integer)15
dim i as
integer
16for i = 0to2
17 arr(i) = arr(i) + 100
18nexti19
end function
和()有關的乙個常見錯誤和保留問題:
1subtest()
2dim arr(2) as
integer
3 arr(0) = 1
4 arr(1) = 2
5 arr(2) = 3
67 showarray (arr) '
編譯時報錯:缺少陣列或使用者定義型別
8dim i as
integer
9for i = 0to2
10debug.print arr(i)
11nexti12
end sub
1314
function showarray(arr() as
integer)15
dim i as
integer
16for i = 0to2
17 arr(i) = arr(i) + 100
18nexti19
end function
編譯報錯:缺少陣列或使用者定義型別,除了()生成了乙個臨時變數之外,與此有關的原因暫不明。。
如果形參是arr而不是arr()
1subtest()
2dim arr(2) as
integer
3 arr(0) = 1
4 arr(1) = 2
5 arr(2) = 367
showarray (arr)
8dim i as
integer
9for i = 0to2
10 debug.print arr(i) '
輸出1,2,3
11nexti12
end sub
1314
function
showarray(arr)
15dim sum as
integer, i as
integer
16for i = 0to2
17 arr(i) = arr(i) + 100
18nexti19
end function
《簡單搞懂Java中方法傳參的方式》
三句話簡單總結 1 傳物件 傳引用 2 傳基本資料型別 傳值 3 像string integer 等 immutable 不可變 型別因為沒有提供自身修改的函式,每次修改都是新生成乙個物件,所以要特殊對待,此時可以認為是傳值。ps 不可變類 所謂的不可變類是指這個類的例項一旦建立完成後,就不能改變其...
jQuery click 方法傳參
今天寫東西,要在jquery 的.click方法裡傳參,查閱了一下jquery的官方文件,做了下實驗和總結 原諒我的前端 是用一點學一點!1.click handler 版本的.click,handler function 型別 只要事件被觸發,就會執行該function 2.click event...
React todolist例子 傳參傳方法
分三個元件 父元件 index.jsx 和兩個子元件 addlist.jsx,todolist.jsx 父元件傳子元件的方法有兩個 第一種 props方式 傳值如 data是父類constructor 傳方法如 子類開始呼叫 傳值 this.props.fffsss就能獲取值 傳方法 this.pr...