Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Referencias
#1

Buenas!.

En este ejemplo tenemos dos arrays, tabla1 y tabla2.

Vamos a asignar a tabla2 la referencia de tabla1
Anularemos la variable tabla1 y veremos que pasa con tabla2. ¿ Se perderá su referencia ?.
No se impacienten....comienza!!

GAMBAS
  1. Public Sub Ejemplo1()
  2.  
  3.   Dim tabla1 As Integer[]
  4.   Dim tabla2 As Integer[]
  5.  
  6.   tabla1 = New Integer[100]
  7.   
  8.   MuestraDireccion("tabla1", tabla1)
  9.   tabla2 = tabla1
  10.   MuestraDireccion("tabla2", tabla2)    
  11.   tabla1 = Null 'Hacemos nula
  12.   MuestraDireccion("tabla1", tabla1)
  13.   MuestraDireccion("tabla2", tabla2)    
  14.  
  15.  
  16. Public Sub MuestraDireccion(nombre As String, tabla As Integer[])
  17.  
  18.   Print "La referencia de " & nombre & " es: " & Object.Address(tabla)
  19.  



Salida:
 
Cita: 
La referencia de tabla1 es: 55AD39A9A518
La referencia de tabla2 es: 55AD39A9A518
La referencia de tabla1 es: 0
La referencia de tabla2 es: 55AD39A9A518

Tabla2 mantiene su referencia.

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#2

Señalo esta página:

https://www.gambas-it.org/wiki/index.php...bili_array

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • Shell
    ¡Gracias!
#3

¿ Y si queremos saber si dos arrays son exactamente iguales ?

¿  Existe algún método ?

GAMBAS
  1.  
  2. Public Sub Main()
  3.  
  4.   t1 = [1, 2, 3]
  5.   t2 = [1, 2, 3]  
  6.  
  7.   'Referencias distintas, valor falso
  8.   Print t1 = t2
  9.  
  10.   Print Aiguales(t1, t2)
  11.  
  12.  
  13. Public Function Aiguales(at1 As Integer[], at2 As Integer[]) As Boolean
  14.  
  15.   Dim iguales As Boolean
  16.  
  17.   'Decimos que son iguales desde el principio
  18.   iguales = True
  19.  
  20.   If at1.Length <> at2.Length Then iguales = False
  21.  
  22.   While (iguales And i < at1.Count)
  23.     If at1 = at2 Then
  24.       Inc i
  25.     Else
  26.       iguales = False
  27.     Endif     
  28.   Wend  
  29.   Return iguales
  30.  



Salida:
Cita:False
True

En Java existe.

Java
  1. public class CompararDosTablas {
  2.     public static void main(String[] args) {
  3.  
  4.         // Dos tablas iguales
  5.         int[] t1 = {7, 9, 20};
  6.         int[] t2 = {7, 9, 20};
  7.  
  8.         System.out.println(t1 == t2); // Sin embargo muestra false
  9.  
  10.         // Ya que sus referencias son distintas
  11.  
  12.         // Dos tablas son iguales si contienen los mismos elementos
  13.         // en el mismo orden
  14.  
  15.         // Comparamos con el método estático equals
  16.         System.out.println(Arrays.equals(t1, t2)); // muestra true
  17.         
  18.     }
  19. }



Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)