You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
log("User not found", "WARNING") // выведет "WARNING: User not found"
19
22
```
20
23
24
+
{% endtab %}
25
+
{% endtabs %}
26
+
21
27
У параметра `level` есть значение по умолчанию, поэтому он необязателен. В последней строке аргумент `"WARNING"` переназначает аргумент по умолчанию `"INFO"`. Вместо того чтоб использовать перегруженные методы в Java, вы можете просто указать дополнительные параметры как параметры по умолчанию для достижения того же эффекта. Однако, если при вызове пропущен хотя бы один аргумент, все остальные аргументы должны вызываться с указанием конкретного имени аргумента.
22
28
29
+
{% tabs default-parameter-values-2 %}
30
+
{% tab 'Scala 2 и 3' for=default-parameter-values-2 %}
31
+
23
32
```scala mdoc
24
33
classPoint(valx:Double=0, valy:Double=0)
25
34
26
35
valpoint1=newPoint(y =1)
27
36
```
37
+
38
+
{% endtab %}
39
+
{% endtabs %}
40
+
28
41
Так мы можем указать что `y = 1`.
29
42
30
43
Обратите внимание, что параметры по умолчанию в Scala, при вызове из Java кода, являются обязательными:
31
44
45
+
{% tabs default-parameter-values-3 %}
46
+
{% tab 'Scala 2 и 3' for=default-parameter-values-3 %}
47
+
32
48
```scala mdoc:reset
33
49
// Point.scala
34
50
classPoint(valx:Double=0, valy:Double=0)
35
51
```
36
52
53
+
{% endtab %}
54
+
{% endtabs %}
55
+
56
+
{% tabs default-parameter-values-4 %}
57
+
{% tab 'Java' for=default-parameter-values-4 %}
58
+
37
59
```java
38
60
// Main.java
39
61
publicclassMain {
@@ -42,3 +64,37 @@ public class Main {
42
64
}
43
65
}
44
66
```
67
+
68
+
{% endtab %}
69
+
{% endtabs %}
70
+
71
+
### Параметры по умолчанию для перегруженных методов
72
+
73
+
Scala не позволяет определять два метода с параметрами по умолчанию и с одинаковым именем (перегруженные методы).
74
+
Важная причина этого - избежание двусмысленности, которая может быть вызвана наличием параметров по умолчанию.
75
+
Чтобы проиллюстрировать проблему, давайте рассмотрим определение методов, представленных ниже:
0 commit comments