Skip to content

Commit 46f052d

Browse files
committed
Finish migrating everything from tut to mdoc and update docs
1 parent 23cd6eb commit 46f052d

File tree

86 files changed

+351
-309
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+351
-309
lines changed

_ba/tour/abstract-type-members.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Metoda `newIntSeqBuf` koristi anonimnu klasu kao implementaciju `IntSeqBuf` pos
6161
Često je moguće pretvoriti apstraktni tip-član u tipski parametar klase i obrnuto.
6262
Slijedi verzija gornjeg koda koji koristi tipske parametre:
6363

64-
```scala mdoc:reset
64+
```scala mdoc:nest
6565
abstract class Buffer[+T] {
6666
val element: T
6767
}

_ba/tour/basics.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ x = 3 // Ovo se ne kompajlira.
5757

5858
Tipovi vrijednosti mogu biti (automatski) zaključeni, ali možete i eksplicitno navesti tip:
5959

60-
```scala mdoc:reset
60+
```scala mdoc:nest
6161
val x: Int = 1 + 1
6262
```
6363

@@ -67,15 +67,15 @@ Primijetite da deklaracija tipa `Int` dolazi nakon identifikatora `x`. Također
6767

6868
Varijable su kao vrijednosti, osim što ih možete promijeniti. Varijable se definišu ključnom riječju `var`.
6969

70-
```scala mdoc:reset
70+
```scala mdoc:nest
7171
var x = 1 + 1
7272
x = 3 // Ovo se kompajlira jer je "x" deklarisano s "var" ključnom riječju.
7373
println(x * x) // 9
7474
```
7575

7676
Kao i s vrijednostima, tip možete eksplicitno navesti ako želite:
7777

78-
```scala mdoc:reset
78+
```scala mdoc:nest
7979
var x: Int = 1 + 1
8080
```
8181

@@ -132,7 +132,7 @@ Metode izgledaju i ponašaju se vrlo slično funkcijama, ali postoji nekoliko ra
132132

133133
Metode se definišu ključnom riječju `def`. Nakon `def` slijedi naziv, lista parametara, povratni tip, i tijelo.
134134

135-
```scala mdoc:reset
135+
```scala mdoc:nest
136136
def add(x: Int, y: Int): Int = x + y
137137
println(add(1, 2)) // 3
138138
```
@@ -262,7 +262,7 @@ Trejtovi su tipovi koji sadrže polja i metode. Više trejtova se može kombino
262262

263263
Definišu se pomoću `trait` ključne riječi.
264264

265-
```scala mdoc:reset
265+
```scala mdoc:nest
266266
trait Greeter {
267267
def greet(name: String): Unit
268268
}

_ba/tour/classes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Pošto `toString` prebrisava metodu `toString` iz [`AnyRef`](unified-types.html)
5656

5757
Konstruktori mogu imati opcione parametre koristeći podrazumijevane vrijednosti:
5858

59-
```scala mdoc:reset
59+
```scala mdoc:nest
6060
class Point(var x: Int = 0, var y: Int = 0)
6161

6262
val origin = new Point // x and y are both set to 0
@@ -67,7 +67,7 @@ println(point1.x) // prints 1
6767

6868
U ovoj verziji klase `Point`, `x` i `y` imaju podrazumijevanu vrijednost `0` tako da ne morate proslijediti argumente.
6969
Međutim, pošto se argumenti konstruktora čitaju s lijeva na desno, ako želite proslijediti samo `y` vrijednost, morate imenovati parametar.
70-
```scala mdoc:reset
70+
```scala mdoc:nest
7171
class Point(var x: Int = 0, var y: Int = 0)
7272
val point2 = new Point(y=2)
7373
println(point2.y) // prints 2
@@ -78,7 +78,7 @@ Ovo je također dobra praksa zbog poboljšanja čitljivosti.
7878
## Privatni članovi i sintaksa getera/setera
7979
Članovi su javni (`public`) po defaultu.
8080
Koristite `private` modifikator pristupa da sakrijete članove klase.
81-
```scala mdoc:reset
81+
```scala mdoc:nest
8282
class Point {
8383
private var _x = 0
8484
private var _y = 0

_ba/tour/higher-order-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Decorator(left: String, right: String) {
2828
}
2929

3030
object FunTest extends App {
31-
def apply(f: Int => String, v: Int) = f(v)
31+
override def apply(f: Int => String, v: Int) = f(v)
3232
val decorator = new Decorator("[", "]")
3333
println(apply(decorator.layout, 7))
3434
}

_ba/tour/inner-classes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Da imamo dva grafa, sistem tipova Scale ne dozvoljava miješanje čvorova defin
5454
jer čvorovi različitih grafova imaju različit tip.
5555
Ovo je primjer netačnog programa:
5656

57-
```
57+
```scala mdoc:fail
5858
val graph1: Graph = new Graph
5959
val node1: graph1.Node = graph1.newNode
6060
val node2: graph1.Node = graph1.newNode
@@ -70,7 +70,7 @@ Za čvorove oba grafa, Java bi dodijelila isti tip `Graph.Node`; npr. `Node` bi
7070
U Scali takav tip je također moguće izraziti, piše se kao `Graph#Node`.
7171
Ako želimo povezati čvorove različitih grafova, moramo promijeniti definiciju naše inicijalne implementacije grafa:
7272

73-
```scala mdoc
73+
```scala mdoc:nest
7474
class Graph {
7575
class Node {
7676
var connectedNodes: List[Graph#Node] = Nil

_ba/tour/traits.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Nasljeđivanje `trait Iterator[A]` traži tip `A` i implementacije metoda `hasNe
3434

3535
## Korištenje trejtova
3636
Koristite `extends` za nasljeđivanje trejta. Zatim implementirajte njegove apstraktne članove koristeći `override` ključnu riječ:
37-
```scala mdoc
37+
```scala mdoc:nest
3838
trait Iterator[A] {
3939
def hasNext: Boolean
4040
def next(): A

_es/tour/abstract-type-members.md

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -14,56 +14,62 @@ previous-page: tour-of-scala
1414
En Scala, las cases son parametrizadas con valores (los parámetros de construcción) y con tipos (si las clases son [genéricas](generic-classes.html)). Por razones de consistencia, no es posible tener solo valores como miembros de objetos; tanto los tipos como los valores son miembros de objetos. Además, ambos tipos de miembros pueden ser concretos y abstractos.
1515
A continuación un ejemplo el cual define de forma conjunta una asignación de valor tardía y un tipo abstracto como miembros del [trait](traits.html) `Buffer`.
1616

17-
trait Buffer {
18-
type T
19-
val element: T
20-
}
17+
```scala mdoc
18+
trait Buffer {
19+
type T
20+
val element: T
21+
}
22+
```
2123

2224
Los *tipos abstractos* son tipos los cuales su identidad no es precisamente conocida. En el ejemplo anterior, lo único que sabemos es que cada objeto de la clase `Buffer` tiene un miembro de tipo `T`, pero la definición de la clase `Buffer` no revela qué tipo concreto se corresponde con el tipo `T`. Tal como las definiciones de valores, es posible sobrescribir las definiciones de tipos en subclases. Esto permite revelar más información acerca de un tipo abstracto al acotar el tipo ligado (el cual describe las posibles instancias concretas del tipo abstracto).
2325

2426
En el siguiente programa derivamos la clase `SeqBuffer` la cual nos permite almacenar solamente sequencias en el buffer al estipular que el tipo `T` tiene que ser un subtipo de `Seq[U]` para un nuevo tipo abstracto `U`:
2527

26-
abstract class SeqBuffer extends Buffer {
27-
type U
28-
type T <: Seq[U]
29-
def length = element.length
30-
}
28+
```scala mdoc
29+
abstract class SeqBuffer extends Buffer {
30+
type U
31+
type T <: Seq[U]
32+
def length = element.length
33+
}
34+
```
3135

3236
Traits o [clases](classes.html) con miembros de tipos abstractos son generalmente usados en combinación con instancias de clases anónimas. Para ilustrar este concepto veremos un programa el cual trata con un buffer de sequencia que se remite a una lista de enteros.
3337

34-
abstract class IntSeqBuffer extends SeqBuffer {
35-
type U = Int
36-
}
38+
```scala mdoc
39+
abstract class IntSeqBuffer extends SeqBuffer {
40+
type U = Int
41+
}
3742

38-
object AbstractTypeTest1 extends App {
39-
def newIntSeqBuf(elem1: Int, elem2: Int): IntSeqBuffer =
40-
new IntSeqBuffer {
41-
type T = List[U]
42-
val element = List(elem1, elem2)
43-
}
44-
val buf = newIntSeqBuf(7, 8)
45-
println("length = " + buf.length)
46-
println("content = " + buf.element)
47-
}
43+
object AbstractTypeTest1 extends App {
44+
def newIntSeqBuf(elem1: Int, elem2: Int): IntSeqBuffer =
45+
new IntSeqBuffer {
46+
type T = List[U]
47+
val element = List(elem1, elem2)
48+
}
49+
val buf = newIntSeqBuf(7, 8)
50+
println("length = " + buf.length)
51+
println("content = " + buf.element)
52+
}
53+
```
4854

4955
El tipo retornado por el método `newIntSeqBuf` está ligado a la especialización del trait `Buffer` en el cual el tipo `U` es ahora equivalente a `Int`. Existe un tipo alias similar en la instancia de la clase anónima dentro del cuerpo del método `newIntSeqBuf`. En ese lugar se crea una nueva instancia de `IntSeqBuffer` en la cual el tipo `T` está ligado a `List[Int]`.
5056

5157
Es necesario notar que generalmente es posible transformar un tipo abstracto en un tipo paramétrico de una clase y viceversa. A continuación se muestra una versión del código anterior el cual solo usa tipos paramétricos.
5258

53-
abstract class Buffer[+T] {
54-
val element: T
55-
}
56-
abstract class SeqBuffer[U, +T <: Seq[U]] extends Buffer[T] {
57-
def length = element.length
58-
}
59-
object AbstractTypeTest2 extends App {
60-
def newIntSeqBuf(e1: Int, e2: Int): SeqBuffer[Int, Seq[Int]] =
61-
new SeqBuffer[Int, List[Int]] {
62-
val element = List(e1, e2)
63-
}
64-
val buf = newIntSeqBuf(7, 8)
65-
println("length = " + buf.length)
66-
println("content = " + buf.element)
67-
}
59+
```scala mdoc:reset
60+
abstract class Buffer[+T] {
61+
val element: T
62+
}
63+
abstract class SeqBuffer[U, +T <: Seq[U]] extends Buffer[T] {
64+
def length = element.length
65+
}
66+
def newIntSeqBuf(e1: Int, e2: Int): SeqBuffer[Int, Seq[Int]] =
67+
new SeqBuffer[Int, List[Int]] {
68+
val element = List(e1, e2)
69+
}
70+
val buf = newIntSeqBuf(7, 8)
71+
println("length = " + buf.length)
72+
println("content = " + buf.element)
73+
```
6874

6975
Nótese que es necesario usar [variance annotations](variances.html) aquí; de otra manera no sería posible ocultar el tipo implementado por la secuencia concreta del objeto retornado por `newIntSeqBuf`. Además, existen casos en los cuales no es posible remplazar tipos abstractos con tipos parametrizados.

_es/tour/basics.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ x = 3 // This does not compile.
6161

6262
Scala es capaz de inferir el tipo de un valor. Aun así, también se puede indicar el tipo usando una anotación:
6363

64-
```scala mdoc
64+
```scala mdoc:nest
6565
val x: Int = 1 + 1
6666
```
6767

@@ -71,15 +71,15 @@ Nótese que la anotación del tipo `Int` sigue al identificador `x` de la variab
7171

7272
Una variable es como un valor, excepto que a una variable se le puede re-asignar un valor después de declararla. Una variable se declara con la palabra reservada `var`.
7373

74-
```scala mdoc
74+
```scala mdoc:nest
7575
var x = 1 + 1
7676
x = 3 // This compiles because "x" is declared with the "var" keyword.
7777
println(x * x) // 9
7878
```
7979

8080
Como con los valores, si se quiere se puede especificar el tipo de una variable mutable:
8181

82-
```scala mdoc
82+
```scala mdoc:nest
8383
var x: Int = 1 + 1
8484
```
8585

@@ -140,7 +140,7 @@ Los métodos se parecen y comportan casi como a las funciones, pero se diferenci
140140
Un método se define con la palabra reservada `def`, seguida por el nombre del método, la lista de parámetros, el tipo de valores que el método devuelve, y el cuerpo del método.
141141

142142
{% scalafiddle %}
143-
```scala mdoc
143+
```scala mdoc:nest
144144
def add(x: Int, y: Int): Int = x + y
145145
println(add(1, 2)) // 3
146146
```
@@ -271,7 +271,7 @@ Los traits son tipos que contienen campos y métodos. Se pueden combinar múltip
271271

272272
Un trait se define usando la palabra reservada `trait`.
273273

274-
```scala mdoc
274+
```scala mdoc:nest
275275
trait Greeter {
276276
def greet(name: String): Unit
277277
}
@@ -280,7 +280,7 @@ trait Greeter {
280280
Un `trait` también puede definir un método, o un valor, con una implementación por defecto.
281281

282282
{% scalafiddle %}
283-
```scala mdoc
283+
```scala mdoc:reset
284284
trait Greeter {
285285
def greet(name: String): Unit =
286286
println("Hello, " + name + "!")

_es/tour/multiple-parameter-lists.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Los métodos pueden definir múltiples listas de parámetros. Cuando un método
1818

1919
A continuación hay un ejemplo, tal y como se define en el trait `TraversableOnce` en el API de colecciones de Scala:
2020

21-
```
21+
```scala mdoc:fail
2222
def foldLeft[B](z: B)(op: (B, A) => B): B
2323
```
2424

@@ -59,9 +59,10 @@ _Nota: el método `modN` está parcialmente aplicado en las dos llamadas a `filt
5959

6060
Aquí se muestra la salida del programa anterior:
6161

62-
List(2,4,6,8)
63-
List(3,6)
64-
62+
```scala mdoc
63+
List(2,4,6,8)
64+
List(3,6)
65+
```
6566

6667
### Casos de uso
6768

@@ -107,7 +108,7 @@ Para especificar solamente ciertos parámetros como [`implicit`](https://docs.sc
107108

108109
Un ejemplo de esto se muestra a continuación:
109110

110-
```
111+
```scala mdoc
111112
def execute(arg: Int)(implicit ec: scala.concurrent.ExecutionContext) = ???
112113
```
113114

@@ -117,7 +118,7 @@ Cuando un método es invocado con menos parámetros que los que están declarado
117118

118119
Por ejemplo,
119120

120-
```scala mdoc
121+
```scala mdoc:nest
121122
val numbers = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
122123
val numberFunc = numbers.foldLeft(List[Int]()) _
123124

_ja/tour/abstract-type-members.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ println("content = " + buf.element)
5757

5858
抽象型メンバーをクラスの型パラメータに変えることも、その逆も可能です。以下は上記コードの型パラメータのみを使うバージョンです。
5959

60-
```scala mdoc
60+
```scala mdoc:nest
6161
abstract class Buffer[+T] {
6262
val element: T
6363
}

_ja/tour/basics.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ScalaFiddleを利用することでブラウザ上でScalaを実行すること
3232

3333
式は計算可能な文です。
3434

35-
```
35+
```scala mdoc
3636
1 + 1
3737
```
3838
`println`を使うことで、式の結果を出力できます。
@@ -66,7 +66,7 @@ x = 3 // この記述はコンパイルされません。
6666

6767
値の型は推測可能ですが、このように型を明示的に宣言することもできます。
6868

69-
```scala mdoc
69+
```scala mdoc:nest
7070
val x: Int = 1 + 1
7171
```
7272

@@ -77,15 +77,15 @@ val x: Int = 1 + 1
7777
再代入ができることを除けば、変数は値と似ています。
7878
`var`キーワードを使うことで、変数は定義できます。
7979

80-
```scala mdoc
80+
```scala mdoc:nest
8181
var x = 1 + 1
8282
x = 3 // "x"は"var"キーワードで宣言されているので、これはコンパイルされます。
8383
println(x * x) // 9
8484
```
8585

8686
値と同様に、型を宣言したければ、明示的に型を宣言することができます。
8787

88-
```scala mdoc
88+
```scala mdoc:nest
8989
var x: Int = 1 + 1
9090
```
9191

@@ -145,7 +145,7 @@ println(getTheAnswer()) // 42
145145
メソッドは `def` キーワードで定義されます。 `def` の後ろには名前、パラメーターリスト、戻り値の型、処理の内容が続きます。
146146

147147
{% scalafiddle %}
148-
```scala mdoc
148+
```scala mdoc:nest
149149
def add(x: Int, y: Int): Int = x + y
150150
println(add(1, 2)) // 3
151151
```
@@ -275,7 +275,7 @@ println(newerId) // 2
275275

276276
`trait`キーワードでトレイトを定義することができます。
277277

278-
```scala mdoc
278+
```scala mdoc:nest
279279
trait Greeter {
280280
def greet(name: String): Unit
281281
}
@@ -284,7 +284,7 @@ trait Greeter {
284284
トレイトはデフォルトの実装を持つこともできます。
285285

286286
{% scalafiddle %}
287-
```scala mdoc
287+
```scala mdoc:reset
288288
trait Greeter {
289289
def greet(name: String): Unit =
290290
println("Hello, " + name + "!")

0 commit comments

Comments
 (0)