Línea de Código http://lineadecodigo.com Aprende a Programar Mon, 09 Oct 2017 13:00:18 +0000 es-ES hourly 1 https://wordpress.org/?v=4.9.3 http://lineadecodigo.com/wp-content/uploads/2016/07/cropped-Logo2-768x768-32x32.jpg Línea de Código http://lineadecodigo.com 32 32 Números primos en un rango con Java http://lineadecodigo.com/java/numeros-primos-rango-java/ Mon, 09 Oct 2017 13:00:18 +0000 http://lineadecodigo.com/?p=9487

Un número primos, tal y como vimos en el ejemplo de Números Primos con Java, es un número el cual solo es divisible por si mismo y por la unidad. En el ejemplo de Números Primos con Java vimos el código necesario para calcular si dado un número este era primo o no. En este [...]

La entrada Números primos en un rango con Java aparece primero en Línea de Código.

]]>

Un número primos, tal y como vimos en el ejemplo de Números Primos con Java, es un número el cual solo es divisible por si mismo y por la unidad. En el ejemplo de Números Primos con Java vimos el código necesario para calcular si dado un número este era primo o no. En este caso nos vamos a apoyar en dicho código para poder calcular los números primos en un rango con Java. Es decir, el usuario establecerá un rango de números: inicio y fin, y calcularemos los números primos que haya en dicho rango.

Lo primero será revisar la función Java que nos dice si dado un número, este es primo.

  1. public static boolean esPrimo(int numero){
  2. int contador = 2;
  3. boolean primo=true;
  4. while ((primo) && (contador!=numero)){
  5. if (numero % contador == 0)
  6. primo = false;
  7. contador++;
  8. }
  9. return primo;
  10. }

Lo que hace la función es iterar desde el número 2 hasta que llega al número por si es divisible en alguno de los números. Asume que el número va a ser primo, pero tan pronto encuentra un número por el que pueda ser divisible:

  1. if (numero % contador == 0) { ... }

Cambiará el valor a indicar que ya no es primo:

  1. primo = false;

Es decir, está utilizando una variable que actúa de cortocircuito para salir del bucle y devolver una respuesta lo antes posible.

Ahora lo que vamos a tratar el el tema del rango. Para ello definimos dos variables con el inicio y fin del rango:

  1. int iInicioRango = 50;
  2. int iFinRango = 97;

Nosotros las hemos dado unos valores por defecto, aunque lo suyo sea pedírselas al usuario por consola.

Una vez que tenemos el rango es tan sencillo como establecer un bucle que recorra el rango y vaya llamando a la función esPrimo()

  1. for (int x=iInicioRango;x<=iFinRango;x++) {
  2. if (esPrimo(x))
  3. System.out.print(x + " ");
  4. }

En el caso de que la función esPrimo() nos devuelva un true, imprimiremos el número por pantalla.

De esta forma tan sencilla tendremos nuestro código que calcule números primos en un rango con Java.

La entrada Números primos en un rango con Java aparece primero en Línea de Código.

]]>
Factorial Java con bucle for http://lineadecodigo.com/java/factorial-java-bucle-for/ Sat, 07 Oct 2017 13:00:58 +0000 http://lineadecodigo.com/?p=9484

La forma más óptima para calcular al factorial de un número con Java es mediante el uso de la recursividad. Si bien el método más directo que nos viene al pensar en la definición de un factorial es el uso de una estructura repetitiva. En este ejemplo vamos a calcular un factorial Java con bucle [...]

La entrada Factorial Java con bucle for aparece primero en Línea de Código.

]]>

La forma más óptima para calcular al factorial de un número con Java es mediante el uso de la recursividad. Si bien el método más directo que nos viene al pensar en la definición de un factorial es el uso de una estructura repetitiva. En este ejemplo vamos a calcular un factorial Java con bucle for.

Lo primero es definir cómo se calcula el factorial de un número. Esto viene representado por la siguiente fórmula.

n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n.

Siendo el factorial de un número la multiplicación de todos los números desde el 1 hasta el número del que queremos calcular el factorial.

Una vez explicado esto entendemos que el uso de un bucle for cuadra a la perfección.

Así lo primero que necesitaremos es definir una variable que vaya a guardar el valor del factorial. Esta variable la inicializamos a 1.

  1. int iFactorial = 1;

Lo siguiente será realizar el bucle for que irá desde el número 2 hasta el número del cual queremos calcular el factorial.

  1. for (int x=2;x<=iNumero;x++)
  2. iFactorial = iFactorial * x;

En cada una de las iteraciones del bucle for multiplicamos el número del bucle por el número almacenado en iFactorial. Al terminar el bucle será la variable iFactorial la que contenga el valor que buscamos.

Es por ello que solo tendremos que volcar el contenido de dicha variable por pantalla:

  1. System.out.println("El factorial del número " + Integer.toString(iNumero) + " es " + Integer.toString(iFactorial));
  2.  

Y ya habremos calculado en Factorial Java con bucle for.

La entrada Factorial Java con bucle for aparece primero en Línea de Código.

]]>
Obtener cuerpo de un mensaje con PHP http://lineadecodigo.com/php/obtener-cuerpo-mensaje-php/ Thu, 05 Oct 2017 13:00:40 +0000 http://lineadecodigo.com/?p=9482

Cuando recuperamos mensajes de un servidor de correo tendremos dos partes, por un lado obtendremos un resumen con el tema de mensaje e información de la persona que lo envía y en un segundo paso tendremos el contenido del mensaje. En este ejemplo vamos a obtener cuerpo de un mensaje con PHP. Para ello lo [...]

La entrada Obtener cuerpo de un mensaje con PHP aparece primero en Línea de Código.

]]>

Cuando recuperamos mensajes de un servidor de correo tendremos dos partes, por un lado obtendremos un resumen con el tema de mensaje e información de la persona que lo envía y en un segundo paso tendremos el contenido del mensaje. En este ejemplo vamos a obtener cuerpo de un mensaje con PHP.

Para ello lo primero que haremos será conectarnos vía imap al servidor de correo mediante la función imap_open().

A la función imap_open() le pasamos el nombre del servidor, el usuario y la contraseña del mismo para poder conectarse.

  1. $hostname = '{mail.correo.com/notls}INBOX';
  2. $username = 'test@correo.com';
  3. $password = 'password';
  4.  
  5. $inbox = imap_open($hostname,$username,$password) or die('Ha fallado la conexión: ' . imap_last_error());

Una vez que nos hemos conectado al servidor de correo deberemos de recuperar los emails de uno de los buzones, en este caso vamos a recuperar todos los emails del buzón principal utilizando la función imap_search().

  1. $emails = imap_search($inbox,'ALL');

En la variable $emails tendremos todos los emails del buzón principal. Ahora vamos a obtener el cuerpo de uno de los mensajes, en concreto, y a modo de ejemplo lo haremos del primer mensaje.

La función que nos ayuda a obtener cuerpo de un mensaje con PHP es imap_fetchbody(). Esta función recibe cuatro parámetros:

  1. imap_fetchbody($stream_correos, $numero_mensaje, $seccion, $opciones);

El $stream_correos son todos los emails obtenidos mediante imap_search(), $numero_mensaje es el número de mensaje dentro de la lista, el primer número será el 1.

Con respecto a $seccion lo que vamos a poder recoger es o bien la cabecera, cuyo valor sería 0, o bien lo que sería el cuerpo del mensaje cuyo valor sería 1.

De esta manera el código que nos recuperaría el cuerpo del mensaje del primero de los mensajes sería:

  1. $cuerpo = imap_fetchbody($inbox,1,1);

El contenido del cuerpo del mensaje vendrá codificado, así que deberemos de utilizar la función imap_qprint() para volcar el contenido.

  1. echo imap_qprint($cuerpo);

Ya solo nos quedará cerrar la conexión imap al servidor para terminar nuestro ejemplo que nos permite obtener cuerpo de un mensaje con PHP.

  1. imap_close($inbox);

La entrada Obtener cuerpo de un mensaje con PHP aparece primero en Línea de Código.

]]>
Links temporales con PHP http://lineadecodigo.com/php/links-temporales-php/ Tue, 03 Oct 2017 13:00:15 +0000 http://lineadecodigo.com/?p=9480

Una de las cosas que nos habéis preguntado en los comentarios es si se pueden crear links temporales con PHP. Es decir, que el link solo aparezca en la página en una franja horaria concreta. Vamos a ver lo sencillo que es montar links temporales mediante el uso de la función date(). Y es que [...]

La entrada Links temporales con PHP aparece primero en Línea de Código.

]]>

Una de las cosas que nos habéis preguntado en los comentarios es si se pueden crear links temporales con PHP. Es decir, que el link solo aparezca en la página en una franja horaria concreta.

Vamos a ver lo sencillo que es montar links temporales mediante el uso de la función date(). Y es que sabiendo manejar la función date() de PHP podremos obtener la información relativa al día y hora que es de una forma muy sencilla.

Lo primero que tenemos que saber es que a la hora de manejar temas de fechas en PHP y la función date() en concreto, deberemos de fijar al código la zona horaria en la que se ejecuta el programa. Para indicar la zona horaria de ejecución utilizaremos la función date_default_timezone_set(), a la cual podemos indicar una zona como 'Europe/Madrid' o un valor general como 'UTC'. En nuestro caso codificaremos lo siguiente:

  1. date_default_timezone_set('Europe/Madrid');

Lo siguiente que haremos será codificar una función que llamaremos mostrar() que devolverá un valor booleano: true si la fecha coincide con un día de la semana y hora en concreta y false en el resto de los casos.

  1. function mostrar() { }

La función date() recibe una cadena de texto en la cual especificamos el formato sobre la información de la fecha actual que queremos que nos devuelva. En la documentación de la función date veremos todos los valores que se le pueden pasar.

Algunos de ellos son, para días:

  • d, día del mes en dos dígitos.
  • D, representación semanal del día con tres letras. De lunes a domingo.
  • j, día del mes en dos dígitos, pero sin ceros a la izquierda.
  • l, representación textual del día.
  • S, sufijo ordinal inglés. Es el 1st, 2nd,...
  • w, representación numérica de la semana. Qué día de la semana es. Empezando con el 0 para el domingo.
  • z, día del año empezando por 0 y acabando en 365.

Para horas:

  • a, am/pm en minúsculas.
  • A, am/pm en mayúsculas.
  • B, hora Internet de 000 a 999.
  • g, formato de 12 horas sin ceros iniciales.
  • G, formato de 24 horas sin ceros iniciales.
  • h, formato de 12 horas con ceros iniciales.
  • H, formato de 24 horas con ceros iniciales.
  • i, minutos con ceros iniciales.
  • s, segundos con ceros iniciales.
  • u, milisegundos.

... y así muchos más que están en la documentación de la función date().

En nuestro caso vamos a utilizar el modificador 'w' que nos da el día de la semana y 'H' que nos dice la hora en formato 24.

Hay que tener cuidado ya que el valor de 'w' empieza siendo 0 para el domingo, 1 para el lunes y acabando con el 6 para el sábado.

Así codificaremos la función de la siguiente forma para mostrar el enlace solo los domingos de 13h a 14h:

  1. function mostrar() {
  2. if ((date("w") == 0) && (date("H") == 13))
  3. return true;
  4. else
  5. return false;
  6. }

Las condiciones que quieras usar las puedes añadir o modificar en la sentencia if.

Ya solo nos quedará invocar a la función cuando vayamos a pintar el enlace de la siguiente forma:

  1. if (mostrar())
  2. echo '<a href="http://lineadecodigo.com">Enlace En Fecha</a>';
  3.  

Mediante este mecanismo podremos tener links temporales con PHP.

La entrada Links temporales con PHP aparece primero en Línea de Código.

]]>
Email a múltiples destinatarios con PHP http://lineadecodigo.com/php/email-multiples-destinatarios-php/ Sun, 01 Oct 2017 13:00:08 +0000 http://lineadecodigo.com/?p=9477

Ya hemos visto lo sencillo que es enviar un email en PHP, pero cómo tenemos que hacer para poder enviar un email a múltiples destinatarios con PHP. Pues veamos lo sencillo que es realizar esta tarea. Lo primero que nos tenemos que fijar es en el método que se utiliza en PHP para enviar emails, [...]

La entrada Email a múltiples destinatarios con PHP aparece primero en Línea de Código.

]]>

Ya hemos visto lo sencillo que es enviar un email en PHP, pero cómo tenemos que hacer para poder enviar un email a múltiples destinatarios con PHP. Pues veamos lo sencillo que es realizar esta tarea.

Lo primero que nos tenemos que fijar es en el método que se utiliza en PHP para enviar emails, este es a función mail(). Si analizamos los parámetros que nos ofrece esta función veremos que son muy sencillos de entender:

  1. bool mail ( string $to , string $subject , string $message
  2. [, string $additional_headers [, string $additional_parameters ]] )

El parámetro $to es el que nos permite identificar los destinatarios del email. Ya que queremos enviar el email a múltiples destinatarios con PHP deberemos de conformar una cadena de emails los cuales estén separados por comas.

Es importar respetar el uso de la coma para separarlos, ya que otra forma de separar los emails no funcionaría.

  1. $para = 'usuario1@correo.com, usuario2@otrocorreo.com';

El resto de parámetros serán: $subject para representar el título del mensaje y $message para indicar el mensaje que quieras enviar.

Para poder indicar de quién le envía el correo electrónico deberemos de utilizar las cabeceras del método mail().

  1. $para = 'usuario1@correo.com, usuario2@otrocorreo.com';
  2. $titulo = 'Enviando email desde PHP';
  3. $mensaje = 'Este es un email que se envía a múltiples destinatarios';
  4. $cabeceras = 'From: Línea de Código <envios@lineadecodigo.com>';

Ya solo nos quedará invocar a mail().

  1. $enviado = mail($para, $titulo, $mensaje, $cabeceras);

El valor que nos deja en la variable $enviado representará si el correo se envió correctamente o hubo problemas en el envío. Es por ello que podemos realizar alguna comprobación:

  1. if ($enviado)
  2. echo 'Email enviado correctamente a '.$para;
  3. else
  4. echo 'Error en el envío del email';

De esta forma tan sencilla hemos conseguido enviar un email a múltiples destinatarios con PHP.

La entrada Email a múltiples destinatarios con PHP aparece primero en Línea de Código.

]]>
Unpacking iterando objetos en Javascript http://lineadecodigo.com/javascript/unpacking-iterando-objetos-javascript/ Fri, 29 Sep 2017 13:00:10 +0000 http://lineadecodigo.com/?p=9438

Hemos visto múltiples formas de realizar un unpacking de objetos con Javascript: objetos sencillos, objetos anidados,... pero, ¿qué sucede si dentro hay un array de objetos? En este caso vamos a ver cómo podemos realizar un unpacking iterando objetos en Javascript. Lo primero será definir un objeto que tenga un array, por ejemplo el objeto [...]

La entrada Unpacking iterando objetos en Javascript aparece primero en Línea de Código.

]]>

Hemos visto múltiples formas de realizar un unpacking de objetos con Javascript: objetos sencillos, objetos anidados,... pero, ¿qué sucede si dentro hay un array de objetos? En este caso vamos a ver cómo podemos realizar un unpacking iterando objetos en Javascript.

Lo primero será definir un objeto que tenga un array, por ejemplo el objeto autor ya utilizado en otras ocasiones:

  1. var autor = {
  2. nombre: 'Santiago Posteguillo',
  3. libros: [
  4. {
  5. titulo: 'Africanus, el hijo del cónsul',
  6. trilogia:'Escipion'
  7. },
  8. {
  9. titulo: 'Las Legiones Malditas',
  10. trilogia:'Escipion'
  11. }
  12. ]
  13. }

Vemos que la propiedad libros contiene un conjunto de objetos representando los libros del array.

Si utilizamos un unpacking de objetos y hacemos lo siguiente:

  1. var {libros: [{titulo}]} = autor;
  2. console.log(titulo);

Lo que vamos a conseguir es obtener el primer valor del objeto anidado. Si bien, a nosotros lo que nos interesa es hacer un unpacking iterando objetos en Javascript para poder mostrar el valor de todos los libros del array.

Para poder hacer una iteración nos apoyamos en la sentencia for...of. Dentro de la sentencia for...of vamos a utilizar el unpacking del objeto. La estructura de código será la siguiente:

  1. for (var {propiedad} of array) { ... }

Así, si queremos mostrar todos los libros del array escribiremos:

  1. var {libros} = autor;
  2.  
  3. for (var {titulo} of libros)
  4. console.log(titulo);

Vemos que hemos hecho una primera desestructuración de la propiedad libros que es la que tiene el array y que luego se la hemos pasado a la estructura for...of.

De esta forma hemos conseguido hacer un unpacking iterando objetos en Javascript.

La entrada Unpacking iterando objetos en Javascript aparece primero en Línea de Código.

]]>
Interface de una función en TypeScript http://lineadecodigo.com/typescript/interface-una-funcion-typescript/ Thu, 28 Sep 2017 13:00:39 +0000 http://lineadecodigo.com/?p=9462

Los ejemplos que hemos visto de interfaces en TypeScript hasta el momento han sido ejemplos de interfaces para objetos, si bien también podemos definir un interface de una función en TypeScript. La idea es la misma, lo que buscamos a la hora de definir el interface de una función en TypeScript es que si definimos [...]

La entrada Interface de una función en TypeScript aparece primero en Línea de Código.

]]>

Los ejemplos que hemos visto de interfaces en TypeScript hasta el momento han sido ejemplos de interfaces para objetos, si bien también podemos definir un interface de una función en TypeScript.

La idea es la misma, lo que buscamos a la hora de definir el interface de una función en TypeScript es que si definimos una función, tanto los parámetros que se le pasan, como el valor que retorna esté claramente definido, independientemente de las veces que definamos funciones de ese tipo.

La estructura para poder definir el interface de una función en TypeScript es la siguiente:

  1. interface NombreInterface {
  2. (propiedad1:tipo, propiedad2:tipo,...,propieddN:tipo):tipo-retorno;
  3. }

Así, por ejemplo, podemos definir un interface que defina lo que sería la función del cálculo del área de un triángulo. La cual quedaría de la siguiente manera:

  1. interface CalculoAreaTriangulo {
  2. (base:number, altura:number):number;
  3. }

Vemos que hemos definido que las funciones que tipo CalculoAreaTriangulo deben de tener dos propiedades numéricas y devolver un número.

Así definiremos una variable que vaya a tener una función de este tipo:

  1. let miCalculo: CalculoAreaTriangulo;

Cuando vayamos a definir la función, esta deberá de cumplir con el interface. Por ejemplo, esta función si que lo cumpliría:

  1. miCalculo = function(b:number,a:number) {
  2. return (b*a)/2;
  3. }

Mientras que esta otra no:

  1. miCalculo = function(b:number,a:number) {
  2. return "Tu area es de *" + (b*a)/2;
  3. }

Ya que el valor que se está devolviendo es de tipo string en vez de ser un tipo number.

Con este ejemplo tan sencillo hemos visto como se puede definir un interface de una función en TypeScript.

La entrada Interface de una función en TypeScript aparece primero en Línea de Código.

]]>
Unpacking de objetos anidados en Javascript http://lineadecodigo.com/javascript/unpacking-objetos-anidados-javascript/ Wed, 27 Sep 2017 13:00:32 +0000 http://lineadecodigo.com/?p=9433

Ya hemos visto en un artículo cómo podemos realizar un unpacking de objetos con Javascript. En este caso vamos a ver cómo podemos hacer un unpacking de objetos anidados en Javascript. Y es que la complejidad del objeto puede ser aquella que queramos. En este caso vamos a partir de un objeto anidado: var autor [...]

La entrada Unpacking de objetos anidados en Javascript aparece primero en Línea de Código.

]]>

Ya hemos visto en un artículo cómo podemos realizar un unpacking de objetos con Javascript. En este caso vamos a ver cómo podemos hacer un unpacking de objetos anidados en Javascript. Y es que la complejidad del objeto puede ser aquella que queramos.

En este caso vamos a partir de un objeto anidado:

  1. var autor = {
  2. nombre: 'Santiago Posteguillo',
  3. libros: [
  4. {
  5. titulo: 'Africanus, el hijo del cónsul',
  6. trilogia:'Escipion'
  7. },
  8. {
  9. titulo: 'Las Legiones Malditas',
  10. trilogia:'Escipion'
  11. }
  12. ]
  13. }

Vemos que el objeto definido en Javascript contiene un array con objetos anidados. En este caso el objeto representar a un autor y los objetos anidados los libros que ha escrito.

Si queremos acceder a estos elementos mediante notación de objetos escribiremos mediante la estructura objeto.propiedad:

  1. console.log(autor.nombre);
  2. console.log(autor.libros[0].titulo);

Pero para manejar las variables de una forma más sencillas vamos a realizar un unpacking de objetos anidados en Javascript.

Para acceder a una propiedad que no esté anidada la estructura será:

  1. var {propiedad} = objeto;

Por ejemplo, si queremos obtener el nombre escribiremos:

  1. var {nombre} = autor;
  2. console.log(nombre);

En el caso que queramos acceder a una propiedad que esté anidada deberemos seguir la siguientes estructura:

  1. var {propiedad: {propiedad_anidada}} = objeto;

Y en el caso de que se encuentre dentro de un array, como es el caso del objeto autor será con el operador []:

  1. var {propiedad: [{propiedad_anidada}]} = objeto;

Así, para obtener el título del un libro escribiremos el siguiente código:

  1. var {libros: [{titulo}]} = autor;
  2. console.log(titulo);

De esta forma habremos conseguido realizar un unpacking de objetos anidados en Javascript.

La entrada Unpacking de objetos anidados en Javascript aparece primero en Línea de Código.

]]>
Validaciones menos estrictas en TypeScript http://lineadecodigo.com/typescript/validaciones-menos-estrictas-typescript/ Tue, 26 Sep 2017 13:00:34 +0000 http://lineadecodigo.com/?p=9459

Ya hemos visto que el uso de los interfaces en TypeScript nos sirve para forzar validaciones de tipos dentro de los elementos. Pero en este caso vamos a ver cómo podemos realizar validaciones menos estrictas en TypeScript que nos ayuden a aprovecharnos la flexibilidad que el lenguaje Javascript nos ofrece, pero sin perder la capacidad [...]

La entrada Validaciones menos estrictas en TypeScript aparece primero en Línea de Código.

]]>

Ya hemos visto que el uso de los interfaces en TypeScript nos sirve para forzar validaciones de tipos dentro de los elementos. Pero en este caso vamos a ver cómo podemos realizar validaciones menos estrictas en TypeScript que nos ayuden a aprovecharnos la flexibilidad que el lenguaje Javascript nos ofrece, pero sin perder la capacidad de las validaciones de tipo.

El realizar validaciones menos estrictas en TypeScript también puede valer para evitar ciertos errores en los nombres de las variables que hacen que el programa pueda fallar en ejecución.

En TypeScript tenemos tres formas de ejecutar validaciones menos estrictas:

  • Index Signature
  • Type Assertion
  • Usando una variable intermedia

Index Signature

La idea es definir un índice genérico dentro del interface, en el que pueda valer cualquier tipo de variable. Para definir el índice genérico utilizamos la estructura:

  1. [propName:tipo]: any

De esta manera podríamos definir el interface Cuadrado de la siguiente forma:

  1. interface Cuadrado {
  2. lado: number;
  3. color?: string;
  4. [propName:string]: any;
  5. }

E imaginemos que definimos una función que calcule el área:

  1. function calcularAreaCuadrado(datos:Cuadrado): number {
  2. let a = datos.lado*2;
  3. return a;
  4. }

En este caso nos da igual el resto de propiedades, es por ello que podríamos tener una definición de la siguiente forma, que no habría problemas de validación:

  1. let a1 = calcularAreaCuadrado({lado:2,colour:'red'});
  2. console.log(a1);

Vemos que el desarrollador ha cometido un fallo nombrando la propiedad color y que la ha denominado colour. No habría ningún problema ya que al tener el índice genérico forzamos unas validaciones menos estrictas en TypeScript y no daría error.

Type Assertion

El Type Assertion o forzado de tipo consiste en forzar el tipo de la variable cuando realizamos la llamada a la función. Esto hará que se obvien aquellos campos que no se cumplan en el interface.

En este caso nuestro interface es el siguiente:

  1. interface Cuadrado {
  2. lado: number;
  3. color?: string;
  4. }

Pero el punto de forzado es cuando llamamos al cálculo del área:

  1. let a2 = calcularAreaCuadrado({radio:2,colour:'red'} as Cuadrado);
  2. console.log(a2);

Vemos que utilizamos el operador as para forzar el tipo de la variable y que sea un Cuadrado que es el interface esperado por la función.

Usando una variable intermedia

En este tercer caso lo que haremos es simple y llanamente asignar el objeto a una variable intermedia antes de llamar a la función.

  1. let c1 = {radio:2,colour:'red'};
  2. let a3 = calcularAreaCuadrado(c1);
  3. console.log(a3);

De esta forma habremos conseguido que no se realize la validación completa del interface.

De esta forma ya hemos visto las tres formas en las que podemos realizar validaciones menos estrictas en TypeScript.

La entrada Validaciones menos estrictas en TypeScript aparece primero en Línea de Código.

]]>
Valores por defecto en una función Javascript http://lineadecodigo.com/javascript/valores-defecto-una-funcion-javascript/ Mon, 25 Sep 2017 13:00:23 +0000 http://lineadecodigo.com/?p=9428

Ya hemos visto en un ejemplo cómo podíamos construir una función con parámetros variables en Javascript. Esto requiere que el objeto arguments lo vayamos revisando para ver si contiene el argumento esperado. Una de las formas de simplificarlo a partir de ES2015 es el utilizar valores por defecto en una función Javascript. En este caso [...]

La entrada Valores por defecto en una función Javascript aparece primero en Línea de Código.

]]>

Ya hemos visto en un ejemplo cómo podíamos construir una función con parámetros variables en Javascript. Esto requiere que el objeto arguments lo vayamos revisando para ver si contiene el argumento esperado.

Una de las formas de simplificarlo a partir de ES2015 es el utilizar valores por defecto en una función Javascript. En este caso los parámetros de la función se van a basar en el concepto de desestructuración de objetos de Javscript.

Lo primero será definir la función en Javascript mediante la siguiente estructura:

  1. function nombre({param1=valordefecto1, param2=valordefecto2,... paramN=valordefectoN} = {}) {
  2. ...
  3. }

Por ejemplo vamos a definir la siguiente función Javascript que permite que se la llame con parámetros de color y tamaño.

  1. function mifuncion({tamanio = 'XL', color = 'rojo'} = {}) {
  2. console.log(tamanio,color);
  3. }
  4.  

Vemos que los parámetros tienen sus valores por defecto. En el caso de tamanio será 'XL' y en el caso de color será 'rojo'.

Ahora ya solo quedará que llamemos a la función con uno, los dos o ninguno de los parámetros. Ya que a la hora de obviarlos lo que sucederá es que la función tomará el valor por defecto.

  1. mifuncion({color:'verde'});
  2. mifuncion({tamanio:'L', color:'azul'});
  3. mifuncion();

Como podemos comprobar, el uso de valores por defecto en una función Javascript nos simplifica enormemente la codificación de funciones que vayan a tener parámetros variables.

La entrada Valores por defecto en una función Javascript aparece primero en Línea de Código.

]]>