Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Last active June 24, 2023 19:53
Show Gist options
  • Save HiroNakamura/53d0d6064d441e6c48b9f1abe925ba0c to your computer and use it in GitHub Desktop.
Save HiroNakamura/53d0d6064d441e6c48b9f1abe925ba0c to your computer and use it in GitHub Desktop.
Más ejemplos con Scala

Scala

Programando con Scala

Instalación

sdk install scala

Verificar instalación

scala --version
scalac --version

Compilar y ejecutar

scalac Holamundo.scala
scala Holamundo

Solo ejecutar

scala Holamundo.scala
object Holamundo{
def main(args: Array[String]): Unit = {
println("Hola mundo!!")
}
}
object TestScala{
def main(args:Array[String]):Unit={
println("\t [ Programando en Scala ]")
testA()
testB()
}
/**
* Variables.
*/
def testA():Unit={
var naranja:CharSequence = "Naranja";
var car:Char = '\u0121';
var obj:Object = Object();
val verdadero:Boolean = false;
println("Color: "+naranja);
println("Caracter: "+car);
println("Object: "+obj);
println("Booleano: "+(!verdadero))
try {
val objMyClass = MyClass(naranja);
objMyClass.imprimir()
}catch {
case e: Exception => println("Ha ocurrido una excepcion: "+e.getMessage())
}
}
/**
* Excepciones.
*/
def testB():Unit={
try{
val errorDivide = 1/0;
}catch{
case e: ArithmeticException=>println("Ha ocurrido una ArithmeticException: "+e.getMessage())
case e: Exception => println("Ha ocurrido una excepcion: "+e.getMessage())
}
var miLista = Array(1.1,2.2,3.3)
try{
println(miLista(3))
}catch{
case e: ArrayIndexOutOfBoundsException =>println("Ha ocurrido una ArrayIndexOutOfBoundsException: "+e.getMessage())
case e: Exception => println("Ha ocurrido una excepcion: "+e.getMessage())
}
val myObjNulo:String = null;
try{
println(myObjNulo.length())
}catch{
case e: NullPointerException =>println("Ha ocurrido una NullPointerException: "+e.getMessage())
case e: Exception => println("Ha ocurrido una excepcion: "+e.getMessage())
}
}
}
class MyClass(etiqueta:CharSequence):
def imprimir():Unit= println(etiqueta)
import scala.io.StdIn._
object Variables{
def main(args: Array[String]): Unit = {
bienvenida();
variables();
selectivas();
repetitivas();
clases();
entrada()
}
def entrada():Unit={
val nombre = readLine("Introduce tu nombre:")
println("Introduce tu edad: ")
val edad = readInt()
printf("Tu nombre es: %s, Tienes: %d años\n", nombre, edad)
}
def clases():Unit={
val x:X = X()
val y: Y = Y()
val simple = Simple()
simple.nombre = "Eusebio"
val simpleTwo: SimpleTwo = SimpleTwo("Nadia")
val micompu: InfoCompu = InfoCompu()
println("\t [ Clases en Scala ]")
if(x.isInstanceOf[X]){
println("Es una instancia de X")
}
if(y.isInstanceOf[X]){
println("Es una instancia de X")
}
printf("%s\n",simple.nombre)
printf("%s\n",simpleTwo.nombre)
printf("Nombre del PC: %s\n" , micompu.nombrePC());
printf("Nombre usuario: %s\n" ,micompu.usuario());
printf("Procesador: %s\n",micompu.procesador());
printf("Sistema operativo: %s\n", micompu.SO());
printf("Version JDK: %s\n",micompu.JDK());
printf("Directorio actual: %s\n",micompu.dir());
}
def repetitivas(): Unit={
val librosPrecio = Map(
"El ser y la nada" -> 300.0,
"La cuarta dama" -> 245.0,
"Unicornios y dragones" -> 350.0)
val numeros = Seq(1,2,3,4,5)
val nombres = List("Bill", "Candy", "Karen", "Leo", "Regina")
println("\t [ Sentencias repetitivas ]")
for (n <- numeros) println(n)
println()
for(n <- nombres) println(n)
println()
nombres.foreach(println)
// Usando el for
for ((titulo,precio) <- librosPrecio) println(s"Libro: $titulo, Precio: $precio")
println()
// Usando for each
librosPrecio.foreach {
case(titulo,precio) => println(s"Libro: $titulo, Precio: $precio")
}
}
def selectivas():Unit ={
var cierto:Boolean = false
val opcion = 1
println("\t [ Sentencias selectivas ]")
if (!cierto){
println("A");
}
if (cierto){
println("B")
}else if( 32 > 43 && 90 == 32){
println("C")
}else{
println("AA")
}
printf("Resultado: %s\n",matchOpcion(opcion))
"Alef"match {
case "Alef" => println("El inicio")
case "Bet" => println("La sabiduría")
case _ => println("undefined")
}
}
def matchOpcion(x:Int): String = x match{
case 0 => "Opcion 0"
case 1 => "Opcion 1"
case 2 => "Opcion 2"
case _ => "Otra opcion"
}
def bienvenida():Unit= println("\t [ Programando en Scala ]")
def variables():Unit = {
val nombre:String = "Fernando"
var cierto:Boolean = 34 > 88
val car: Char = '\u0021'
val flotante: Float = 32.1f
val numero: Short = 2
val entero: Int = 321
val largo: Long = 1202020L
val real: Double = 30303.88
val bigDecimal = BigDecimal("2")
println("\t [Variables en Scala]")
printf("Hola, %s\n",nombre)
printf("Es cierto?: %b\n",cierto)
printf("Caracter: %c\n",car)
printf("Numero: %d\n",numero)
printf("Entero: %d\n",entero)
printf("Largo: %1d\n",largo)
printf("Flotante: %.2f\n",flotante)
printf("Real: %.2f\n",real)
printf("BigDecimal: %.2f\n",bigDecimal)
}
}
class X{}
class Y extends X{}
class Simple(){
var nombre:String=""
}
class SimpleTwo(var nombre:String)
class InfoCompu{
def nombrePC():String={
System.getenv("COMPUTERNAME");
}
def usuario():String={
System.getProperty("user.name");
}
def procesador():String={
System.getenv("PROCESSOR_IDENTIFIER");
}
def SO():String={
System.getProperty("os.name");
}
def JDK():String={
System.getProperty("java.version");
}
def dir():String={
System.getProperty("user.dir");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment