This commit is contained in:
Andrey Kapitonov authored and GitHub committed 2020-06-01 17:22:53 +03:00
1 parent 4174c401b5
commit 5f1a0e57c1
1 file changed
+32
+32
View File
@@ -33,3 +33,35 @@ c := make(chan int, 1)
```
и мы получим буферизированный канал с ёмкостью __1__. Обычно каналы работают синхронно - каждая из сторон ждёт, когда другая сможет получить или передать сообщение. Но буферизованный канал работает асинхронно — получение или отправка сообщения не заставляют стороны останавливаться. Но канал теряет пропускную способность, когда он занят, в данном случае, если мы отправим в канал __1__ сообщение, то мы не сможем отправить туда ещё одно до тех пор, пока первое не будет получено.
### <a name="11"></a> 11. Напишите программу, которая меняет местами два числа (x := 1; y := 2; swap(&x, &y) должно дать x=2 и y=1)
```go
func main() {
x := 1
y := 2
swap(&x, &y)
fmt.Println(x, y)
}
func swap(x, y *int) {
*x, *y = *y, *x
}
```
### <a name="12"></a> 12. Какое будет значение у переменной x после выполнения программы?
```go
func square(x *float64) {
*x = *x * *x
}
func main() {
x := 1.5
square(&x)
fmt.Println(x)
}
```