1 00:00:00,360 --> 00:00:03,120 Hola. Hoy aprenderemos sobre variables 2 00:00:03,280 --> 00:00:05,640 y los tipos de variables disponibles en Pharo. 3 00:00:05,800 --> 00:00:07,840 De hecho, hay dos grandes tipos de variables: 4 00:00:08,000 --> 00:00:13,280 las variables locales que por convención siempre comienzan con minúscula; 5 00:00:13,440 --> 00:00:15,920 veremos los diferentes tipos disponibles. 6 00:00:16,080 --> 00:00:18,800 El segundo gran grupo son las variables compartidas. 7 00:00:18,960 --> 00:00:22,560 Comienzan por convención con mayúscula. 8 00:00:22,720 --> 00:00:24,640 También hay varios tipos de variables compartidas. 9 00:00:25,600 --> 00:00:29,120 Comencemos con las variables locales que comienzan con minúsculas. 10 00:00:29,280 --> 00:00:31,360 Las variables locales que tiene un método. 11 00:00:31,520 --> 00:00:36,000 Se declaran entre barras, 12 00:00:36,160 --> 00:00:37,400 entre barras verticales. 13 00:00:37,560 --> 00:00:39,920 Aquí, hay una variable local, c 14 00:00:40,080 --> 00:00:43,760 es local al método y existe solo para su ejecución. 15 00:00:43,920 --> 00:00:46,960 Por lo tanto, siempre debe comenzar con minúsculas. 16 00:00:47,120 --> 00:00:51,840 Por cierto, todos los nombres de clase comienzan con mayúsculas 17 00:00:52,000 --> 00:00:55,120 porque las clases se comparten en el sistema. 18 00:00:56,800 --> 00:00:59,640 Otros tipos de variables locales: 19 00:00:59,800 --> 00:01:03,560 por ejemplo, las variables de instancia 20 00:01:03,720 --> 00:01:07,120 que son locales del objeto. Aqui hay dos de ellas x y y. 21 00:01:07,280 --> 00:01:09,640 Siempre comienzan con minúsculas. 22 00:01:09,800 --> 00:01:11,880 En cuanto a las variables locales, 23 00:01:12,040 --> 00:01:15,560 también tenemos los argumentos de los métodos, aquí. 24 00:01:16,280 --> 00:01:19,760 En aPoint, "a" es minúscula. 25 00:01:19,920 --> 00:01:22,840 porque esta variable También es local del método. 26 00:01:23,000 --> 00:01:26,880 También los parámetros de un bloque. 27 00:01:27,040 --> 00:01:31,880 :x, x es una variable local de un bloque 28 00:01:32,040 --> 00:01:34,320 Un argumento de bloque, lo siento. 29 00:01:34,480 --> 00:01:37,280 Así que aquí, comienza con minúsculas. 30 00:01:39,160 --> 00:01:43,440 En Pharo, hay seis variables específicas 31 00:01:43,600 --> 00:01:46,840 llamadas variables especiales; No puede cambiar sus nombres. 32 00:01:47,000 --> 00:01:48,720 Son palabras reservadas en Pharo. 33 00:01:48,880 --> 00:01:52,640 Hay más de 50 de ellas en Java o JavaScript; 34 00:01:52,800 --> 00:01:54,160 en Pharo, solo seis. 35 00:01:54,320 --> 00:01:57,720 son true, false, nil, self, super, y thisContext. 36 00:01:57,880 --> 00:02:01,640 Vamos a averiguar para qué sirven estas palabras reservadas 37 00:02:01,800 --> 00:02:04,360 true y false son instancias de booleanos: 38 00:02:04,520 --> 00:02:07,240 true es la instancia única de la clase True; 39 00:02:07,400 --> 00:02:10,160 false, la instancia única de la clase False. 40 00:02:10,320 --> 00:02:13,760 nil es la instancia única de la clase UndefinedObject. 41 00:02:13,920 --> 00:02:16,960 true, false y nil son objetos como cualquier otro, 42 00:02:17,120 --> 00:02:21,200 excepto que son las únicas instancias de una clase específica en el sistema. 43 00:02:21,800 --> 00:02:24,160 Luego, hay tres pseudovariables: 44 00:02:24,320 --> 00:02:28,720 self se refiere al receptor actual, y es equivalente a this en Java. 45 00:02:28,880 --> 00:02:31,520 super siempre se refiere al receptor actual, 46 00:02:31,680 --> 00:02:34,880 pero esta vez, cuando envíe un mensaje a través de super, 47 00:02:35,040 --> 00:02:38,720 Significa que la búsqueda de métodos, el algoritmo de selección de métodos, 48 00:02:38,880 --> 00:02:40,960 que veremos en otra clase, 49 00:02:41,120 --> 00:02:45,840 comenzará en la superclase de donde escribe la palabra clave super. 50 00:02:46,800 --> 00:02:51,000 thisContext es una pseudovariable que se refiere al objeto 51 00:02:51,160 --> 00:02:53,400 que reifica la pila de llamadas del programa. 52 00:02:53,560 --> 00:02:57,280 Es un concepto avanzado Que estudiaremos al final de este MOOC. 53 00:02:57,440 --> 00:03:00,080 Se lo explicaremos más tarde. 54 00:03:00,240 --> 00:03:03,360 Por ahora, solo necesita saber que es una pseudovariable. 55 00:03:04,760 --> 00:03:08,120 Ahora, las variables compartidas o globales. 56 00:03:08,280 --> 00:03:10,680 Primero, tiene todas las clases. 57 00:03:10,840 --> 00:03:14,120 Todos los nombres de clase comienzan con mayúsculas 58 00:03:14,280 --> 00:03:17,680 porque puedo hacer referencia a una clase desde cualquier lugar del sistema. 59 00:03:18,480 --> 00:03:22,160 Tenga cuidado: lo que comienza con mayúsculas no siempre es una clase. 60 00:03:22,320 --> 00:03:24,600 Por ejemplo, Transcript: 61 00:03:24,760 --> 00:03:29,640 es el nombre de un objeto compartido en el sistema 62 00:03:29,800 --> 00:03:32,840 Todos pueden hacer referencia a este objeto. 63 00:03:33,000 --> 00:03:36,640 Es la salida estándar, el stdout en otros idiomas. 64 00:03:36,800 --> 00:03:40,120 Es un objeto, instancia de una clase, accesible a nivel mundial 65 00:03:40,280 --> 00:03:42,880 por eso su nombre comienza con mayúsculas. 66 00:03:45,440 --> 00:03:48,280 También estan las variables de clase, 67 00:03:48,440 --> 00:03:52,840 que se declaran aquí, al declarar una clase en classVariableNames; 68 00:03:53,000 --> 00:03:56,520 aquí, la clase #CombinedChar define dos variables de clase, 69 00:03:56,680 --> 00:03:59,920 una llamada Compositions y otra Decompositions. 70 00:04:00,080 --> 00:04:02,200 Estas dos variables de clase 71 00:04:02,360 --> 00:04:06,040 son accesibles por las instancias de la clase #CombinedChar 72 00:04:06,200 --> 00:04:09,000 y de sus subclases. 73 00:04:09,160 --> 00:04:11,880 Es por eso que se llaman Variables compartidas. 74 00:04:12,040 --> 00:04:15,480 Todas las instancias de la clase y sus subclases los comparten. 75 00:04:15,640 --> 00:04:19,240 Por eso, ambas comienzan con mayúsculas. 76 00:04:19,400 --> 00:04:22,080 Resumiendo, debe recordar: 77 00:04:22,240 --> 00:04:27,520 todas las variables locales, locales a un objeto, un bloque o un método, 78 00:04:27,680 --> 00:04:29,760 comienzan con minúsculas; 79 00:04:29,920 --> 00:04:33,600 todas las variables globales, tales como nombres de clase, etc., 80 00:04:33,760 --> 00:04:35,600 comienzan con mayúsculas.