mirror of
https://github.com/goavengers/go-interview.git
synced 2026-02-04 04:36:19 +00:00
Added QA
This commit is contained in:
@@ -33,3 +33,35 @@ c := make(chan int, 1)
|
|||||||
```
|
```
|
||||||
|
|
||||||
и мы получим буферизированный канал с ёмкостью __1__. Обычно каналы работают синхронно - каждая из сторон ждёт, когда другая сможет получить или передать сообщение. Но буферизованный канал работает асинхронно — получение или отправка сообщения не заставляют стороны останавливаться. Но канал теряет пропускную способность, когда он занят, в данном случае, если мы отправим в канал __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)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user