1
1
# Частични премествания
2
2
3
- При [ разлагането] [ destructuring ] [ ^ destructuring ] на отделна променлива чрез
4
- преместване и като препратка може да се ползва _ обвързване (на променливи) по
5
- образец_ [ ^ pattern_binding ] . От това може да последва _ частично преместване_ на
6
- променливата, което означава, че част от променливата е преместена, а друга не
7
- е. В този случай изходната променлива не може да бъде използвана като цяло.
8
- Само частите, които са присвоени на нови променливи като препратки, могат да
9
- бъдат използвани.
3
+ _ Обвързване (на променливи) по образец_ [ ^ pattern_binding ] може да се ползва за
4
+ [ разлагане в отделни променливи] [ destructuring ] [ ^ destructuring ] чрез
5
+ _ преместване_ на части от съставната променлива. Едновременно с това части от
6
+ променливата могат да се разложат в други променливи чрез _ създаване на
7
+ препратки_ към тези части. Това може да доведе до _ частично преместване_ на
8
+ данните от променливата, което означава, че част от данните в променливата са
9
+ преместени, а други части не са. В този случай изходната променлива вече не
10
+ може да бъде използвана като едно цяло. Само частите, които са присвоени на
11
+ нови променливи като препратки, могат да бъдат използвани повторно.
10
12
11
13
``` rust,editable
12
14
fn main() {
@@ -29,16 +31,17 @@ fn main() {
29
31
30
32
println!("The person's name is {}", name);
31
33
32
- // Грешка! заемка на частично преместена стойност: `person`. Случва се
33
- // частично преместване
34
+ // Грешка! заемка на частично преместена стойност: `person`. Случило се е
35
+ // частично преместване.
34
36
//println!("The person struct is {:?}", person);
35
37
36
- // `person` не може да се ползва, но `person.age` може, понеже нейната стойност
37
- // не е преместена
38
+ // `person` не може да се ползва като цяло , но частта `person.age` може,
39
+ // понеже нейната стойност не е преместена.
38
40
println!("The person's age from person struct is {}", person.age);
39
41
}
40
42
41
43
```
44
+
42
45
(В този пример съхраняваме стойността на променливата ` age ` в купа̀, за да
43
46
онагледим частичното преместване. Ако изтрием ` ref ` от кода по-горе,
44
47
компилаторът ще върне грешка, тъй като владението на ` person.age ` ще бъде
@@ -48,14 +51,14 @@ fn main() {
48
51
49
52
## Б. пр.
50
53
51
- [ ^ destructuring ] : разлагане – destructuring
52
-
53
- [ ^ pattern_binding ] : обвързване по образец (при разлагане на структура) – pattern binding .
54
+ [ ^ destructuring ] : разлагане – destructuring. Съставните променливи могат да
55
+ бъдат разложени на съставните им части, като всяка част отиде в отделна
56
+ променлива .
54
57
55
- _ ЗАДАЧА за прев.!: Да прегледам другите преводи на ` pattern ` , за да видя дали „образец”
56
- е подходящ превод и за другите случаи. Да отбележа превода в Б.Пр._
58
+ [ ^ pattern_binding ] : обвързване по образец (при разлагане на структура) – pattern binding
57
59
58
60
### Вижте също:
61
+
59
62
[ Разлагане] [ destructuring ]
60
63
61
64
[ destructuring ] : ../../flow_control/match/destructuring.md
0 commit comments