回覆列表
  • 1 # daazhu2

    沒有

    sub沒有返回值

    function有返回值

    比如

    sub a(num as integer)

    end sub

    那麼你不能dim s:s = a(123)

    而如果

    function a(num as integer)

    end function

    你就可以

    dim s:s = a(123)

    返回值:

    如果sub要返回只能透過變數

    sub a(num as integer)

    num = num + 1

    end sub

    其他地方:dim s:s = 0:a(s):msgbox "now s="&s

    這裡a(s)把s的記憶體地址傳進了sub,然後sub裡面對這個num=num+1就相當於s=s+1了。

    如果用function則可以寫成這樣:

    function a(num as integer)

    num = num + 1

    a = num

    end function

    其中a=num這裡a就是過程名

    外部使用:

    dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s

    call a(s):function也具有傳記憶體地址的功能,當然function還有返回值:s = a(s)。

    具體返回值型別:

    [Private | Public] Function 函式名字 (引數) As 返回值型別

    說白了 sub是一個過程 給了它內容不能直接返回一個內容的,只能間接;而function是一個函式,例如數學中函式y=kx,其中輸入x那麼y就是kx的值,這裡也一樣,有返回值(如把y=2x寫成VB的函式就是:

    function y(x as integer) as integer

    y = 2x

    end function

  • 中秋節和大豐收的關聯?
  • 金山9路時刻表?