Jump to content
Fórum Script Brasil
  • 0

Sub E Function


Guest Lulo

Question

7 answers to this question

Recommended Posts

  • 0
Função retorna um valor...

Isso mesmo Promotor Advanced!! biggrin.gif

exemplo:

Function somar(numero As Integer) As Integer
    Dim valor1 As Integer
    Dim valor2 As Integer
    valor1 = 10
    valor2 = 20
    somar = (valor1 + valor2) * numero 'aki eu to retornando um valor para a minha funcao soma
End Function

ai se eu fizer um botao e colocar assim:
Private Sub Command1_Click()
    text1.Text = somar(3) 'aki ele vai chamar a funcao passando como parametro o numero 3, e depois ela retorna o valor da conta da Funcao
End Sub

já uma sub não pode voltar um valor! biggrin.gif

Acho q deu pra entender não é?? biggrin.gif

hihi

Link to comment
Share on other sites

  • 0

ph34r.gif

Não necessáriamente..

Uma função retorna um valor se você indica-la com o parenteses...

Uma função pode também ser um procedimento(Sub)... o Exemplo mais simples disso é a Função MsgBox.. que se tiver parenteses retorna um valor indicando qual botão for pressionado...

MsgBox como Sub:

MsgBox "Olah mudo =]"

--> Perceba que não possui parenteses... entaum não retornara nenhum valor..

MsgBox como Function:

if MsgBox("Sai?",vbYesNo)=vbYes Then End

--> Agora perceba que ele teim q retornar um valor entaum coloca-se o parenteses...

casos errados:

MsgBox ("Ola mundo")

MsgBox("Sai?",vbYesNo)

Resp = MsgBox "Olah mundo"

Resp = MsgBox"Sai?",vbYesNo

Vlw rolleyes.gif

Link to comment
Share on other sites

  • 0

Apesar de não concordar que uma função pode ser vista como uma sub quando o valor retornado não vai pra lugar algum (veja que ele é retornado, só não vai para algum lugar, diferentemente de uma sub que não retorna um valor), só tem uma observação a fazer:

MsgBox ("Ola mundo")

Não é errado. Apenas força a passagem do valor por referência, que no caso do primeiro argumento da função Msgbox() já é por referência mesmo.

Abraços,

Graymalkin

Link to comment
Share on other sites

  • 0
Apesar de não concordar que uma função pode ser vista como uma sub quando o valor retornado não vai pra lugar algum (veja que ele é retornado, só não vai para algum lugar, diferentemente de uma sub que não retorna um valor), só tem uma observação a fazer:

MsgBox ("Ola mundo")

Não é errado. Apenas força a passagem do valor por referência, que no caso do primeiro argumento da função Msgbox() já é por referência mesmo.

Abraços,

Graymalkin

Ops... só corrigindo. Na verdade o valor entre parênteses força a passagem por valor e não por referência.

ppgsalomao: Gente,

Pelo menos da forma que aprendi, tem um certo desacordo com o dito acima !!

A diferença do Procedimento (Sub) para uma Função é que uma função só pode retornar um valor e o procedimento não tem limite, ou seja, qualquer incluindo nenhum !

Se pensarmos que passar um valor por referência e a alteração de seu conteúdo seja um "retorno" de valor, sim, realmente. No entanto, não concordo que passar um valor por referência e alterá-lo in-loco seja retornar um valor, no sentido estrito da palavra.

Abraços,

Graymalkin

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.9k
×
×
  • Create New...