Types Flashcards
El operador “is” es un operador que permite chequear … en tiempo de ejecucion
El tipo de un objeto
Cuando el compilador por si solo cambie el tipo de un objeto por conveniencia se denomina…
smart cast
“x: Any
print(x.length)”
Cuale es el operador que se denimina “unsafe” y como se corrige para evitar errores?
“as” (y as String) operator
Se corrige añadiendo “?” (val x: String? = y as String?)
El mejor caso para evitar excpeciones es “as?” (val x: String? = y as? String)
Diferencia entre variable y objeto
Las variables hacen referencia a objetos guardados en la memoria con un valor especifico.
val mensaje : String = Hello world
La variable mensaje hace referencia a un objeto de tipo String alocado en la memoria cuyo valor es hello world
¿Que podemos hacer para saber el tipo de un objeto en tiempo de ejecucion(runtime)?
val c : Int = 5
println(c::class.simpleName) //Int
Tipo del objeto al que apunta la variable:
val a = 1
Int. Siempre que no se especifique el tipo el compilador lo infiere a long o int depende del rango en el que este el valor. En este caso int pq valor entre -2^32(2000Maprox) y 2^32-1
Tipo del objeto al que apunta la variable:
val b = 1L
Long. Siempre que no se especifique el tipo el compilador lo infiere a long o int depende del rango en el que este el valor. En este caso long porque tiene L
Tipo del objeto al que apunta la variable:
val c = 5000000000
Long. Siempre que no se especifique el tipo el compilador lo infiere a long o int depende del rango en el que este el valor. En este caso Long pq esta por encima del rango de int 2000M
Que representan los Integer y tipos de Integer?
Representan numeros enteros, sin decimales. Tanto positivos como negativos.
Byte(8bits) Short(16bits) Int(32bits) Long(64bits)
Que representan los floating point y tipos?
Numeros con decimales tanto positivos como negativos.
Float(32bits con 6 decimales) Double(64 bits con 15 decimales)
Dime dos ejemplos de conversiones explicitas entre primitivos
val num: Int = 3
val num2 = num.toLong
val num3 = num.toDouble
Cuales son los primitivos en kotlin
numbers, boolean, characters, strings y arrays
De que tipo son las variables tras dichas operaciones:
val a = 5/2
val c = 5L/2
val d = 5/2L
a es 2 Int
c es 2 Long
d es 2 Long
Piensa en un ejemplo con el operado “in”
val x = 10 val a = 5 val b = 7 if (x !in a..b){ println(x) // 10 } for(y in a..b){ println(y) // 5 6 7 }
Que se puede usar en caso de querer numeros que no tengan signo y como?
unsignes numbers como UInt y se designan siempre con una u ejemplo val c : UInt= 42u
Que tipo primitivo se designa entre ‘’ (comillas simples)
los tipo char
Que son los escaped characters, dime los mas utilizados
Caracteres que se escriben de una manera distinta del simbolo que representan. \n nueva linea \t tabulador \b retroceso \' o \" comillas
Como se denomina a los strings que contienen escaped charaters? (Piensa ejemplo)
Escaped strings
val s = “Hello world\n”
Como se denominan los strings que son multilinea y que no pueden contener escaped characters?(Piensa ejemplo)
EXTRA: Cual es el metodo utilizado con estos strings para eliminar margenes
Raw strings
val s = “””
como patatas en el burger
porque soy un gordo”””
EXTRA: .trimMargin()
Como se denominan los strings que tienen expresiones que se evaluan dentro del propio string? (Piensa ejemplo)
String templates
val age = 22
print(“David tiene $age años)
Que dos metodos hay para crear arrays?
arrayof(1,2,3) //[1,2,3]
array(3){ind→ind*5} //[0,5,10]
Verdadero o false: El tamaño de un array es variable
falso cuando lo creamos definimos un size y este no puede cambiar, pero los valores si ej: x[1] = 3
Cual es el problema de los genericos cuando hacemos casts?
Los genericos no se pueden chequear en tiempo de ejecucion(runtime) porque borran el tipo de objeto que guardan
List pasa a List
Se utiliza el mismo metodo para leer numeros o strings por pantalla?
No,
para los numeros reader = Scanner(System.in
) reader.nextInt
para strings readline()
Se utiliza el mismo metodo para leer numeros o strings por pantalla?
No,
para los numeros reader = Scanner(System.in
) reader.nextInt
para strings readline()
Son los strings similares a arrays?
Un char es un array de caracteres a los que podemos acceder de la siguiente manera: mensaje[i]