Página 1 de 1
ENABLE TYPE CLASS ALL, alguém usa?
Enviado: 30 Mar 2021 22:05
por asimoes
Código: Selecionar todos
LOCAL aVar := {}
ENABLE TYPE CLASS ALL
aVar:Init( 2 )
aVar:AtPut( 1, "One" )
aVar:AtPut( 2, 2 )
Código: Selecionar todos
// The example demonstrates usage of scalar classes.
#include "HbClass.ch"
PROCEDURE Main()
LOCAL aVar := {}
LOCAL bDisplay := {|x| Qout( x:asString() ) }
LOCAL pPointer := ( @Main() )
ENABLE TYPE CLASS ALL
CLS
aVar:Init( 2 )
aVar:AtPut( 1, "One" )
aVar:AtPut( 2, 2 )
aVar:InsertAt( 3, "Three" )
Alert( "Found at pos: " + aVar:IndexOf( "Three" ):asString() )
aVar:Do( bDisplay )
aVar:AddAll( { 4, "Five", 6 } )
? aVar:AsString
? bDisplay:asString()
? pPointer:asString()
RETURN
ENABLE TYPE CLASS ALL, alguém usa?
Enviado: 30 Mar 2021 22:52
por asimoes
No método METHOD IndexOf( x ) da classe ScalarObject tem um bug, o fonte é tescalar.prg na pasta D:\Projetos_GIT\harbour-fork\src\rtl,
O erro acontece aqui IF elem = x
ENABLE TYPE CLASS ALL, alguém usa?
Enviado: 31 Mar 2021 08:37
por JoséQuintas
Já pensei em usar isso, mas fugir do tradicional pode complicar...
Por exemplo em NET, é normal usar Var:ToString()
No ADO, por exemplo, acabei criando: variavel:Date(), variavel:Number(), variavel:String(), variavel:value()
Achei que não iria acostumar com o ToDate(), ToNumber(), ToString(), ToValue()
No meu caso facilitou, porque campo:Number( xxx ) vai retornar 1, não importa se o conteúdo for 1 ou "1".
ou retornar 0, caso o conteúdo seja NULL.
Isso é bem melhor do que toda hora ficar testando se pode ter conteúdo nulo. Se é pra retornar número vai sempre retornar número.
Isso de função escalar poderia substituir essa "conversão", mas.... é chato trabalhar diferente de todo mundo... ou pode deixar muito preso a algum recurso específico da linguagem, o que pode transformar algo muito interessante em algo que depois pode atrapalhar.
É aquela tal história:
Analisar se realmente vale a pena, ou se é apenas uso por "moda".
Se justificar o uso, é ir em frente, senão melhor deixar de lado até aparecer uma boa oportunidade.
Igual usar classe: vale a pena? lógico que sim, mas isso não significa usar classe até pra somar 1 + 1, é usar em situações onde isso vai valer a pena no conjunto geral.
Lembrando que, ao usar classe, a primeira coisa que se perde é a checagem feita pela compilação, porque métodos/propriedades não tem como o compilador conferir.
Então... só vale a pena se... valer a pena o custo/benefício, se o que vamos ganhar tem mais vantagem sobre o que vamos perder.