Ir para conteúdo
Fórum Script Brasil
  • 0

Sub E Function


Guest Lulo

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...