[SP-pm] Dúvida entre Scalar Context e List Context

Solli Honorio shonorio at gmail.com
Thu Mar 25 05:14:41 PDT 2010


Desculpa, fiz confusão com tipo de contexto e com tipo de variável ...

então o quinto contexto é ........

... bem que eu poderia responder e ter a minha cerveja, já que deste fez
estou próximo do Luis  :D ....

Solli M. Honório

Em 25 de março de 2010 11:01, Solli Honorio <shonorio em gmail.com> escreveu:

>  Void e  Boolean não são tipo de variáveis, pelo menos não no Perl 5. O
> perldoc perldata vai lhe dar o caminho para os outros tipos ...
>
> O Void e Boolean que você viu nos links informados são contexto de retorno
> da scalar, ou seja quando é considerado falso/verdadeiro, ou quando não é
> aguardado algum retorno.
>
> O link do mastering explica bem estas informações ...
>
> Solli M. Honório
>
> Em 25 de março de 2010 04:15, "Flávio R. Lopes" <flavio.lopes em links.inf.br
> > escreveu:
>
> É....acho que sou eu quem vai pagar as brejas! :)
>>
>> Pesquisei na Net e vi estes:
>> - Scalar
>> - List
>> - Void
>> - Boolean
>>
>> Fontes:
>> http://www.perlmonks.org/?node_id=738558
>> http://www252.pair.com/comdog/mastering_perl/Chapters/contexts.html
>>
>> Qual seria o quinto tipo?
>>
>>
>> Luis Motta Campos escreveu:
>>
>>  Flávio R. Lopes wrote:
>>>
>>>
>>>> Blz Solli e Nelson....acho que deu pra entender!
>>>>
>>>> É que no livro aparece o seguinte exemplo que me deixou em dúvida:
>>>>
>>>> @rocks = qw( talc quartz jade obsidian );
>>>> print "How many rocks do you have?\n";
>>>> print "I have ", @rocks, " rocks!\n";        # WRONG, prints names of
>>>> rocks
>>>> print "I have ", scalar @rocks, " rocks!\n"; # Correct, gives a number
>>>>
>>>> Então se eu utilizasse a penultima linha, eu estaria retornando um
>>>> Contexto de Lista (pois me traria a lista dos nomes das pedras)
>>>> Já na última, estou forçando "@rocks" a me retornar um valor escalar, ou
>>>> seja, esta linha é um Contexto Escalar! (pois me retorna o número de
>>>> elementos que tenho no meu array)
>>>>
>>>> É isso mesmo?
>>>>
>>>>
>>>
>>> Quase. Você está confuso, ainda, sobre o que é "contexto". Contexto quer
>>> dizer "o que está em volta, o que dá sentido".
>>>
>>> Contexto de lista é (entre outras coisas) uma chamada de função:
>>>
>>> my_example_function(
>>>  qw( tudo aqui dentro tem contexto de lista ), @inclusive, #$isso
>>> );
>>>
>>> ( contexto, de, lista, claro );
>>>
>>> [ qw{ tudo dentro de '[' e ']' está em contexto de lista ];
>>>
>>> { aqui => 'também', é => 'tudo', contexto => 'de lista' };
>>>
>>> Contexto escalar é mais restritivo:
>>>
>>> scalar @lista; # contexto escalar "na marra"
>>>
>>> $escalar = @lista; # contexto escalar "explícito"
>>>
>>> $hash{ CHAVE } = $valor; # qual é o contexto em que "CHAVE" está?
>>>
>>> Lição de casa: existem mais contextos que apenas "lista" e "escalar".
>>> Eles são 5 no total. Encontre-os e leia sobre eles. Pontos extras (e uma
>>> rodada de cerveja paga por mim) se você postar o que encontrar aqui.
>>>
>>>
>>> Putamplexos
>>>
>>>
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> "o animal satisfeito dorme". - Guimarães Rosa
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100325/694393e7/attachment-0001.html>


More information about the SaoPaulo-pm mailing list