Skip to content

Commit 00d73a5

Browse files
committed
Scala for Java programmers tutorials, good to go
1 parent eb36bec commit 00d73a5

File tree

7 files changed

+40
-30
lines changed

7 files changed

+40
-30
lines changed

_config.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,15 @@ collections:
5454
ko: # Korean translations
5555
output: true
5656
permalink: /:collection/:path.html
57-
57+
de: # German translations
58+
output: true
59+
permalink: /:collection/:path.html
60+
it: # Italian translations
61+
output: true
62+
permalink: /:collection/:path.html
63+
zh-tw: # Taiwanese translations
64+
output: true
65+
permalink: /:collection/:path.html
5866

5967
defaults:
6068
-
@@ -68,5 +76,5 @@ highlighter: rouge
6876
permalink: /:categories/:title.html:output_ext
6977
baseurl:
7078
exclude: ["vendor"]
71-
gems:
79+
plugins:
7280
- jekyll-redirect-from

de/tutorials/scala-for-java-programmers.md renamed to _de/tutorials/scala-for-java-programmers.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: Ein Scala Tutorial für Java Programmierer
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: false
7-
multilingual-overview: true
88
language: de
99
---
1010

@@ -631,4 +631,3 @@ Dieses Dokument hat einen kurzen Überblick über die Sprache Scala gegeben und
631631
Beispiele verwendet. Interessierte Leser können beispielsweise mit dem Dokument *Scala by Example*
632632
fortfahren, welches fortgeschrittenere Beispiele enthält, und die *Scala Language Specification*
633633
konsultieren, sofern nötig.
634-

es/tutorials/scala-for-java-programmers.md renamed to _es/tutorials/scala-for-java-programmers.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: Tutorial de Scala para programadores Java
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: true
78
language: es
89
---
910

10-
Por Michel Schinz y Philipp Haller.
11+
Por Michel Schinz y Philipp Haller.
1112
Traducción y arreglos Santiago Basulto.
1213

1314
## Introducción
@@ -75,7 +76,7 @@ La declaración `import` en la tercer línea por lo tanto importa todos los miem
7576
Dentro del método `main` primero creamos una instancia de la clase `Date` la cual por defecto contiene la fecha actual. A continuación definimos un formateador de fechas utilizando el método estático `getDateInstance` que importamos previamente. Finalmente, imprimimos la fecha actual formateada de acuerdo a la instancia de `DateFormat` que fue "localizada". Esta última línea muestra una propiedad interesante de la sintaxis de Scala. Los métodos que toman un solo argumento pueden ser usados con una sintaxis de infijo Es decir, la expresión
7677

7778
df format ahora
78-
79+
7980
es solamente otra manera más corta de escribir la expresión:
8081

8182
df.format(ahora)
@@ -129,7 +130,7 @@ En el siguiente programa, la función del temporizador se llama `unaVezPorSegund
129130
unaVezPorSegundo(tiempoVuela)
130131
}
131132
}
132-
133+
133134
_Nota: si nunca tuviste experiencias previas con programación funcional te recomiendo que te tomes unos segundos para analizar cuando se utilizan paréntesis y cuando no en los lugares donde aparece *callback*. Por ejemplo, dentro de la declaración de `unaVezPorSegundo` no aparece, ya que se trata de la función como un "valor", a diferencia de cómo aparece dentro del método, ya que en ese caso se la está invocando (por eso los paréntesis)._
134135
Note that in order to print the string, we used the predefined method
135136
`println` instead of using the one from `System.out`.
@@ -163,7 +164,7 @@ Como hemos visto anteriormente, Scala es un lenguaje orientado a objetos, y como
163164
Esta clase compleja toma dos argumentos, que son las partes real e imaginarias de un número complejo. Estos argumentos deben ser pasados cuando se crea una instancia de la clase `Complejo`, de la siguiente manera:
164165

165166
new Complejo(1.5, 2.3)
166-
167+
167168
La clase contiene dos métodos llamados `re` e `im`, que proveen acceso a las dos partes del número.
168169

169170
Debe notarse que el tipo de retorno de estos dos métodos no está expresado explícitamente. Será inferido automáticamente por el compilador, que primero mira la parte derecha de estos métodos y puede deducir que ambos retornan un valor de tipo `Double`.
@@ -198,7 +199,7 @@ Es posible sobreescribir métodos heredados de una superclase en Scala. Aunque e
198199
class Complejo(real: Double, imaginaria: Double) {
199200
def re = real
200201
def im = imaginaria
201-
override def toString() =
202+
override def toString() =
202203
"" + re + (if (im < 0) "" else "+") + im + "i"
203204
}
204205

@@ -224,11 +225,11 @@ El hecho de que las clases `Sum`, `Var` y `Const` sean declaradas como clases ca
224225
en lugar de `new Const(5)`),
225226
- se crea automáticamente un "getter" (un método para obtener el valor)
226227
para los parámetros utilizados en el constructor (por ejemplo es posible
227-
obtener el valor de `v` de una instancia `c` de la clase `Const` de la
228+
obtener el valor de `v` de una instancia `c` de la clase `Const` de la
228229
siguiente manera: `c.v`),
229230
- se proveen definiciones por defecto de los métodos `equals` y `hashCode`,
230231
que trabajan sobre la estructura de las instancias y no sobre su identidad,
231-
- se crea una definición por defecto del método `toString` que
232+
- se crea una definición por defecto del método `toString` que
232233
imprime el valor de una forma "tipo código) (ej: la expresión
233234
del árbol `x+1` se imprimiría `Sum(Var(x),Const(1))`),
234235
- las instancias de estas clases pueden ser descompuestas
@@ -377,7 +378,7 @@ La última característica de Scala que exploraremos en este tutorial es la de l
377378

378379
Los tipos genéricos proveen al programador la habilidad de escribir código parametrizado por tipos. Por ejemplo, escribir una librería para listas enlazadas se enfrenta al problema de decidir qué tipo darle a los elementos de la lista. Ya que esta lista está pensada para ser usada en diferentes contextos, no es posible decidir que el tipo de elementos sea, digamos, `Int`. Esto sería completamente arbitrario y muy restrictivo.
379380

380-
Los programadores Java cuentan como último recurso con `Object`, que es el supertipo de todos los objetos. Esta solución de todas maneras está lejos de ser ideal, ya que no funciona con tipos primitivos (`int`, `long`, `float`, etc.) e implica que el programador tenga que realizar muchos casteos de tipos en su programa.
381+
Los programadores Java cuentan como último recurso con `Object`, que es el supertipo de todos los objetos. Esta solución de todas maneras está lejos de ser ideal, ya que no funciona con tipos primitivos (`int`, `long`, `float`, etc.) e implica que el programador tenga que realizar muchos casteos de tipos en su programa.
381382

382383
Scala hace posible definir clases genéricas (y métodos) para resolver este problema. Examinemos esto con un ejemplo del contenedor más simple posible: una referencia, que puede estar tanto vacía como apuntar a un objeto de algún tipo.
383384

it/tutorials/scala-for-java-programmers.md renamed to _it/tutorials/scala-for-java-programmers.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: Un'introduzione a Scala per programmatori Java
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: false
7-
multilingual-overview: true
88
language: it
99
---
1010

ko/tutorials/scala-for-java-programmers.md renamed to _ko/tutorials/scala-for-java-programmers.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: 자바 프로그래머를 위한 스칼라 튜토리얼
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: false
78
language: ko
@@ -295,7 +296,7 @@ Scala 클래스의 경우 파라미터들을 가질 수 있다는 것인데 아
295296

296297
실수 부분과 허수 부분에 접근 할 때에 마치 그들이 필드인 것 처럼 함수
297298
마지막에 빈 괄호를 붙이지 않을 수 있다면 더욱 좋겠다. 놀라지 마시라,
298-
Scala는 이러한 기능을 완벽하게 제공한다. 그저 **인자를 제외**하고
299+
Scala는 이러한 기능을 완벽하게 제공한다. 그저 **인자를 제외**하고
299300
함수를 정의하면 된다. 이런 종류의 함수는 인자가 0개인 함수와는 다른데,
300301
인자가 0개인 함수는 빈 괄호가 따라 붙는 반면 이 함수는 정의 할 때도
301302
사용 할 때도 이름 뒤에 괄호를 붙이지 않는다. 우리가 앞서 정의한
@@ -365,7 +366,7 @@ Scala는 **케이스 클래스**라 하는 이 둘 사이의 어디쯤에 놓여
365366
클래스 `Const`의 인스턴스 `c`에 있는 생성자 파라미터 `v`
366367
값은 `c.v`로 접근 가능하다.
367368
- 함수 `equals``hashCode`도 공짜로 제공된다. 이 함수들은
368-
레퍼런스의 동일함 보다 **구조**의 동일함을 확인 하도록 구현되어 있다.
369+
레퍼런스의 동일함 보다 **구조**의 동일함을 확인 하도록 구현되어 있다.
369370
다른 말로, 생성 된 곳이 다르더라도 각각의 생성자 파라미터 값이 같다면
370371
같은 것으로 여긴다.
371372
- 함수 `toString`에 대한 기본적 구현이 제공된다. 이 기본적인
@@ -679,4 +680,3 @@ Scala는 이 문제를 해결하기 위한 제네릭 클래스와 제네릭 함
679680
보았다. 흥미가 생겼다면 *Scala By Example*도 함께 읽어보자. 더 수준
680681
높고 다양한 예제를 만날 수 있다. 필요 할 때마다 *Scala Language
681682
Specification*을 참고하는 것도 좋다.
682-

_overviews/tutorials/scala-for-java-programmers.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: A Scala Tutorial for Java Programmers
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: true
7-
multilingual-overview: true
8+
89
languages: [es, ko, de, it, zh-tw]
10+
permalink: /tutorials/:title.html
911
---
1012

1113
By Michel Schinz and Philipp Haller

zh-tw/tutorials/scala-for-java-programmers.md renamed to _zh-tw/tutorials/scala-for-java-programmers.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
layout: overview
2+
layout: singlepage-overview
33
title: 給 Java 程式設計師的 Scala 入門教學
4-
overview: scala-for-java-programmers
4+
5+
partof: scala-for-java-programmers
56

67
discourse: false
7-
multilingual-overview: true
88
language: zh-tw
99
---
1010

0 commit comments

Comments
 (0)