Skip to content

Commit 9263c69

Browse files
committed
fix formatting and scalafiddle
1 parent ff6a56b commit 9263c69

File tree

1 file changed

+83
-55
lines changed

1 file changed

+83
-55
lines changed

_es/tour/basics.md

Lines changed: 83 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,95 @@ discourse: false
66

77
partof: scala-tour
88
language: es
9+
10+
num: 2
11+
next-page: unified-types
12+
previous-page: tour-of-scala
913
---
1014

11-
# Scala básico
15+
En esta página, cubriremos lo básico de Scala.
16+
17+
## Probando Scala en el navegador
18+
19+
Puedes ejecutar Scala en tu navegador con ScalaFiddle.
20+
21+
1. Ve a [https://scalafiddle.io](https://scalafiddle.io).
22+
2. Pega `println("Hello, world!")` en el panel izquierdo.
23+
3. Presiona el botón de "Run". El resultado aparece en el panel de la derecha.
1224

25+
Esta es una forma simple y con cero configuración de experimentar con piezas de código en Scala.
26+
27+
Many of the code examples in this documentation are also integrated with ScalaFiddle, so you
28+
can directly experiment with them simply by clicking the Run-button.
29+
Muchos de los ejemplos de código en esta documentación están integrados también con ScalaFiddle, para que puedas experimentar directamente con ellos simplemente presionando el botón de "Run".
1330

1431
## Expresiones
1532

1633
En Scala todo es una expresión (cada sentencia "devuelve" un valor).
1734

18-
```scala
35+
```tut
1936
1 + 1
2037
```
2138

22-
Se puede ver el resultado de evaluar expresiones usando println.
39+
Se puede ver el resultado de evaluar expresiones usando `println`.
2340

24-
```scala
41+
{% scalafiddle %}
42+
```tut
2543
println(1) // 1
2644
println(1 + 1) // 2
2745
println("Hello!") // Hello!
2846
println("Hello," + " world!") // Hello, world!
2947
```
48+
{% endscalafiddle %}
3049

3150
## Valores
3251

33-
Se puede nombrar el resultado de expresiones con la palabra clave *val*.
52+
Se puede nombrar el resultado de expresiones con la palabra clave `val`.
3453

35-
```scala
54+
```tut
3655
val x = 1 + 1
3756
println(x) // 2
3857
```
3958

40-
Los resultados con nombre, como x en el ejemplo, son llamados *valores*. Referenciar un valor no lo vuelve a computar.
59+
Los resultados con nombre, como `x` en el ejemplo, son llamados valores. Referenciar un valor no lo vuelve a computar.
4160

4261
Los valores no pueden ser reasignados.
4362

44-
```scala
63+
```tut:fail
4564
x = 3 // This does not compile.
4665
```
4766

48-
Los tipos de los valores pueden ser inferidos, pero tambien se pueden anotar explicitamente de la siguiente forma:
67+
Los tipos de los valores pueden ser inferidos, pero también se pueden anotar explicitamente de la siguiente forma:
4968

50-
```scala
69+
```tut
5170
val x: Int = 1 + 1
5271
```
5372

54-
Noten como la declaración de tipo Int va después del identificador.
73+
Noten como la declaración de tipo `Int` va después del identificador `x`. También necesitas un `:`.
5574

5675
## Variables
5776

58-
Las variables son como los valores, excepto que no es posible re-asignarlos. Las variables se definen con la palabra clave *var*.
77+
Las variables son como los valores, excepto que no es posible re-asignarlos. Las variables se definen con la palabra clave `var`.
5978

60-
```scala
79+
```tut
6180
var x = 1 + 1
6281
x = 3 // This compiles because "x" is declared with the "var" keyword.
6382
println(x * x) // 9
6483
```
6584

6685
Igual que con los valores, si queremos se puede especificar el tipo:
6786

68-
```scala
87+
```tut
6988
var x: Int = 1 + 1
7089
```
7190

7291
## Bloques
7392

74-
Se pueden combinar expresiones rodeándolas con { y } . A esto le llamamos un *bloque*.
93+
Se pueden combinar expresiones rodeándolas con `{}` . A esto le llamamos un bloque.
7594

7695
El resultado de la ultima expresión del bloque es también el resultado total del bloque.
7796

78-
```scala
97+
```tut
7998
println({
8099
val x = 1 + 1
81100
x + 1
@@ -88,56 +107,64 @@ Las funciones son expresiones que reciben parámetros.
88107

89108
Se pueden definir funciones anónimas, por ejemplo, una que retorne x + 1 para x entero:
90109

91-
```scala
110+
```tut
92111
(x: Int) => x + 1
93112
```
94113

95114
A la izquierda de => esta la lista de parámetros. A la derecha esta el cuerpo de la función
96115

97116
También podemos asignarle un nombre a la función.
98117

99-
```scala
118+
{% scalafiddle %}
119+
```tut
100120
val addOne = (x: Int) => x + 1
101121
println(addOne(1)) // 2
102122
```
123+
{% endscalafiddle %}
103124

104125
Las funciones pueden tomar muchos parámetros.
105126

106-
```scala
127+
{% scalafiddle %}
128+
```tut
107129
val add = (x: Int, y: Int) => x + y
108130
println(add(1, 2)) // 3
109131
```
132+
{% endscalafiddle %}
110133

111134
O ninguno.
112135

113-
```scala
136+
```tut
114137
val getTheAnswer = () => 42
115138
println(getTheAnswer()) // 42
116139
```
117140

118-
119141
## Métodos
120142

121143
Los métodos se parecen y se comportan de forma muy similar a las funciones, pero hay un par de diferencias clave entre ellos.
122-
Los métodos se definen con la palabra clave *def*, seguida por un nombre, una lista de parámetros, un tipo de retorno (opcional pero recomendado), y el cuerpo del método.
123144

124-
```scala
145+
Los métodos se definen con la palabra clave `def`, seguida por un nombre, una lista de parámetros, un tipo de retorno, y el cuerpo del método.
146+
147+
{% scalafiddle %}
148+
```tut
125149
def add(x: Int, y: Int): Int = x + y
126150
println(add(1, 2)) // 3
127151
```
152+
{% endscalafiddle %}
128153

129-
Notar como el tipo de retorno es declarado después de la lista de parámetros y con dos puntos.
154+
Notar como el tipo de retorno es declarado _después_ de la lista de parámetros y con dos puntos `: Int`.
130155

131156
Los métodos pueden tener mutiles listas de parámetros.
132157

133-
```scala
158+
{% scalafiddle %}
159+
```tut
134160
def addThenMultiply(x: Int, y: Int)(multiplier: Int): Int = (x + y) * multiplier
135161
println(addThenMultiply(1, 2)(3)) // 9
136162
```
163+
{% endscalafiddle %}
137164

138-
O ninguna.
165+
O ninguna lista de parametros.
139166

140-
```scala
167+
```tut
141168
def name: String = System.getProperty("user.name")
142169
println("Hello, " + name + "!")
143170
```
@@ -146,58 +173,58 @@ Hay otras diferencias, pero para simplificar, podemos pensar que son similares a
146173

147174
Los métodos también pueden tener expresiones de varias lineas.
148175

149-
```scala
176+
```tut
150177
def getSquareString(input: Double): String = {
151178
val square = input * input
152179
square.toString
153180
}
154181
```
155182

156183
La ultima expresión en el cuerpo del método es el valor de retorno del mismo.
157-
(Scala tiene la palabra clave *return* pero no se usa y no hace lo que uds. piensan que hace)
184+
(Scala tiene la palabra clave `return` pero raramente se usa)
158185

159186
## Clases
160187

161-
Se puede definir clases con la palabra clave *class* seguida del nombre y los parámetros del constructor.
188+
Se puede definir clases con la palabra clave `class` seguida del nombre y los parámetros del constructor.
162189

163-
```scala
190+
```tut
164191
class Greeter(prefix: String, suffix: String) {
165192
def greet(name: String): Unit =
166193
println(prefix + name + suffix)
167194
}
168195
```
169196

170-
El tipo de retorno del método greet es Unit, que dice que no hay nada significativo que retornar. Se usa de forma similar al void de Java y C (con la diferencia de que como toda expresión en Scala debe retornar un valor, existe un valor singleton para el tipo Unit que se escribe `()` y no lleva información )
197+
El tipo de retorno del método `greet` es `Unit`, que dice que no hay nada significativo que retornar. Se usa de forma similar al `void` de Java y C (Con la diferencia de que como toda expresión en Scala debe retornar un valor, existe un valor singleton para el tipo Unit que se escribe () y no lleva información )
171198

172199
Puedes crear una instancia de una clase con la palabra clave *new*.
173200

174-
```scala
201+
```tut
175202
val greeter = new Greeter("Hello, ", "!")
176203
greeter.greet("Scala developer") // Hello, Scala developer!
177204
```
178205

179-
Mas adelante, cubriremos las clases en profundidad.
206+
Cubriremos las clases en profundidad [mas adelante](classes.html).
180207

181208
## Case Classes
182209

183210
Scala tiene un tipo especial de clases llamadas "case" classes. Por defecto, las case classes son inmutables y son comparadas por valor.
184-
Las case classes se definen usando las palabras clave *case class*.
211+
Las case classes se definen usando las palabras clave `case class`.
185212

186-
```scala
213+
```tut
187214
case class Point(x: Int, y: Int)
188215
```
189216

190-
Se pueden instanciar sin necesidad de usar la palabra clave new.
217+
Se pueden instanciar sin necesidad de usar la palabra clave `new`.
191218

192-
```scala
219+
```tut
193220
val point = Point(1, 2)
194221
val anotherPoint = Point(1, 2)
195222
val yetAnotherPoint = Point(2, 2)
196223
```
197224

198225
Y son comparadas por valor.
199226

200-
```scala
227+
```tut
201228
if (point == anotherPoint) {
202229
println(point + " and " + anotherPoint + " are the same.")
203230
} else {
@@ -211,15 +238,15 @@ if (point == yetAnotherPoint) {
211238
} // Point(1,2) and Point(2,2) are different.
212239
```
213240

214-
Hay mucho mas sobre las case classes que queremos presentar, y estamos convencidos de que te vas a enamorar de ellas. Las cubriremos en profundidad mas adelante.
241+
Hay mucho mas sobre las case classes que queremos presentar, y estamos convencidos de que te vas a enamorar de ellas. Las cubriremos en profundidad [mas adelante](case-classes.html).
215242

216243
## Objetos
217244

218245
Los objetos son instancias de una sola clase de su propia definición. Puedes pensar en ellos como singleton de sus propias clases
219246

220-
Puedes definir objectos con la palabra clave *object*.
247+
Puedes definir objectos con la palabra clave `object`.
221248

222-
```scala
249+
```tut
223250
object IdFactory {
224251
private var counter = 0
225252
def create(): Int = {
@@ -231,39 +258,39 @@ object IdFactory {
231258

232259
Para acceder al objeto, lo referencias por su nombre.
233260

234-
```scala
261+
```tut
235262
val newId: Int = IdFactory.create()
236263
println(newId) // 1
237264
val newerId: Int = IdFactory.create()
238265
println(newerId) // 2
239266
```
240267

241-
Mas adelante, cubriremos los objetos en profundidad.
268+
Cubriremos los objetos en profundidad [mas adelante](singleton-objects.html).
242269

243270
## Traits
244271

245272
Los traits son tipos que contienen campos y métodos. Se pueden combinar múltiples traits.
246273

247-
Los traits se definen con la palabra clave *trait*.
274+
Los traits se definen con la palabra clave `trait`.
248275

249-
```scala
276+
```tut
250277
trait Greeter {
251278
def greet(name: String): Unit
252279
}
253280
```
254281

255282
Los traits pueden también tener implementación por defecto.
256283

257-
```scala
284+
{% scalafiddle %}
285+
```tut
258286
trait Greeter {
259287
def greet(name: String): Unit =
260288
println("Hello, " + name + "!")
261289
}
262-
```
263290
264-
También puedes extender traits con la palabra clave *extends* y sobrescribir una implementación con la palabra clave *override* .
291+
También puedes extender traits con la palabra clave `extends` y sobrescribir una implementación con la palabra clave `override` .
265292
266-
```scala
293+
```tut
267294
class DefaultGreeter extends Greeter
268295
269296
class CustomizableGreeter(prefix: String, postfix: String) extends Greeter {
@@ -278,18 +305,19 @@ greeter.greet("Scala developer") // Hello, Scala developer!
278305
val customGreeter = new CustomizableGreeter("How are you, ", "?")
279306
customGreeter.greet("Scala developer") // How are you, Scala developer?
280307
```
308+
{% endscalafiddle %}
281309

282-
Aquí, DefaultGreeter extiende un solo trait, pero puede extender múltiples traits.
310+
Aquí, `DefaultGreeter` extiende un solo trait, pero puede extender múltiples traits.
283311

284-
Mas adelante, cubriremos los traits en profundidad.
312+
Cubriremos los traits en profundidad [mas adelante](traits.html).
285313

286-
## Metodo principal (Main Method)
314+
## Método principal (Main Method)
287315

288-
El metodo principal (main) es el punto de entrada de un programa. La maquina virtual de java (JVM) requiere que el método principal sea llamado `main` y que tome un solo argumento: un arrray de Strings.
316+
El método principal (main) es el punto de entrada de un programa. La maquina virtual de java (JVM) requiere que el método principal sea llamado `main` y que tome un solo argumento: un arrray de Strings.
289317

290318
Usando un objeto, puedes definir el método principal de la siguiente forma:
291319

292-
```scala
320+
```tut
293321
object Main {
294322
def main(args: Array[String]): Unit =
295323
println("Hello, Scala developer!")

0 commit comments

Comments
 (0)