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
Copy file name to clipboardExpand all lines: ru/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -28,13 +28,13 @@ lang: ru
28
28
Сопоставление с образцом, широко используемое в функциональных языках программирования, представлено в качестве экспериментального нововведения. [#14912](https://bugs.ruby-lang.org/issues/14912)
29
29
Оно позволяет пересекать с указанным объектом и присваивать ему значение, если оно соответствует шаблону.
30
30
31
-
{% highlight ruby %}
31
+
```ruby
32
32
caseJSON.parse('{...}', symbolize_names:true)
33
33
in {name:"Alice", children: [{name:"Bob", age: age}]}
34
34
p age
35
35
...
36
36
end
37
-
{% endhighlight %}
37
+
```
38
38
39
39
Подробнее, смотрите [Сопоставление с образцом - новая особенность Ruby 2.7](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7).
Copy file name to clipboardExpand all lines: ru/news/_posts/2019-10-22-ruby-2-7-0-preview2-released.md
+24-24Lines changed: 24 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -29,13 +29,13 @@ lang: ru
29
29
Сопоставление с образцом, широко используемое в функциональных языках программирования, представлено в качестве экспериментального нововведения. [[Feature #14912]](https://bugs.ruby-lang.org/issues/14912)
30
30
Оно позволяет пересекать с указанным объектом и присваивать ему значение, если оно соответствует шаблону.
31
31
32
-
{% highlight ruby %}
32
+
```ruby
33
33
caseJSON.parse('{...}', symbolize_names:true)
34
34
in {name:"Alice", children: [{name:"Bob", age: age}]}
35
35
p age
36
36
...
37
37
end
38
-
{% endhighlight %}
38
+
```
39
39
40
40
Подробнее, смотрите [Сопоставление с образцом - новая особенность Ruby 2.7](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7).
41
41
@@ -60,12 +60,12 @@ end
60
60
ключевых слов, добавьте оператор двойную звёздочку для избежания
61
61
предупреждения и обеспечения правильного поведения в Ruby 3.
62
62
63
-
{% highlight ruby %}
63
+
```ruby
64
64
deffoo(key:42); end; foo({key:42}) # warned
65
65
deffoo(**kw); end; foo({key:42}) # warned
66
66
deffoo(key:42); end; foo(**{key:42}) # OK
67
67
deffoo(**kw); end; foo(**{key:42}) # OK
68
-
{% endhighlight %}
68
+
```
69
69
70
70
* Когда вызов метода передает ключевые слова методу, который принимает
71
71
ключевые слова, но он не передает достаточно необходимых позиционных
@@ -74,12 +74,12 @@ end
74
74
в качестве хэша вместо ключевого слова чтобы избежать предупреждения
75
75
и обеспечить правильное поведение в Ruby 3.
76
76
77
-
{% highlight ruby %}
77
+
```ruby
78
78
deffoo(h, **kw); end; foo(key:42) # warned
79
79
deffoo(h, key:42); end; foo(key:42) # warned
80
80
deffoo(h, **kw); end; foo({key:42}) # OK
81
81
deffoo(h, key:42); end; foo({key:42}) # OK
82
-
{% endhighlight %}
82
+
```
83
83
84
84
* Когда метод принимает определенные ключевые слова, но не ключевое
85
85
слово звёздочку, и хэш или ключевые слова звёздочки передаются в
@@ -88,51 +88,51 @@ end
88
88
обновить вызывающий код чтобы передать отдельные хэши, для
h = {}; deffoo(a) a end; foo(**h) # {} and warning
133
133
h = {}; deffoo(*a) a end; foo(h) # [{}]
134
134
h = {}; deffoo(a) a end; foo(h) # {}
135
-
{% endhighlight %}
135
+
```
136
136
137
137
## Другие Значимые Новые Функции
138
138
@@ -143,36 +143,36 @@ end
143
143
* Вводится экспериментальный безначальный диапазон. Это может не так полезно,
144
144
как бесконечный диапазон, но может пригодиться для DSL. [[Feature #14799]](https://bugs.ruby-lang.org/issues/14799)
145
145
146
-
{% highlight ruby %}
146
+
```ruby
147
147
ary[..3] # identical to ary[0..3]
148
148
rel.where(sales: ..100)
149
-
{% endhighlight %}
149
+
```
150
150
151
151
* `Enumerable#tally` добавлен. Подсчитывает вхождение каждого элемента.
152
152
153
-
{% highlight ruby %}
153
+
```ruby
154
154
["a", "b", "c", "b"].tally
155
155
#=> {"a"=>1, "b"=>2, "c"=>1}
156
-
{% endhighlight %}
156
+
```
157
157
158
158
* Вызов приватного метода по `self` теперь возможен. [[Feature#11297]](https://bugs.ruby-lang.org/issues/11297) [[Feature #16123]](https://bugs.ruby-lang.org/issues/16123)
159
159
160
-
{% highlight ruby %}
160
+
```ruby
161
161
def foo
162
162
end
163
163
private :foo
164
164
self.foo
165
-
{% endhighlight %}
165
+
```
166
166
167
167
*`Enumerator::Lazy#eager` добавлен. Генерирует не ленивый перечислитель
168
168
из ленивого перечислителя. [[Feature#15901]](https://bugs.ruby-lang.org/issues/15901)
169
169
170
-
{% highlight ruby %}
170
+
```ruby
171
171
a = %w(foo bar baz)
172
172
e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.eager
173
173
p e.class #=> Enumerator
174
174
p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]
0 commit comments