Обтекаемый тег изображения с текстом div и alt не будет переполняться за пределы.
div {
width:100px;
height:100px;
}
img{
border:1px solid #ff0000;
overflow:hidden;
}
<div>
<img src="http://www.example.com/broken.jpg" alt="This is a long text which overflows bounds of image">
</div>
Спецификация языка программирования Go
После вызова close и после получения любых ранее отправленных значений, Операции приема возвращают нулевое значение для типа канала без блокировки. Многозначная операция приема возвращает полученное значение вместе с указанием того, закрыт ли канал.
blockquote>
Вы считаете нулевые значения.
Например,
package main import ( "fmt" ) func main() { c1 := make(chan interface{}) close(c1) c2 := make(chan interface{}) close(c2) var c1Count, c2Count int var z1Count, z2Count int for i := 1000; i >= 0; i-- { select { case z1 := <-c1: c1Count++ if z1 == nil { z1Count++ } case z2 := <-c2: c2Count++ if z2 == nil { z2Count++ } } } fmt.Printf("c1Count: %d\nc2Count: %d\n", c1Count, c2Count) fmt.Printf("z1Count: %d\nz2Count: %d\n", z1Count, z2Count) }
Детская площадка: https://play.golang.org/p/tPRkqXrAFno
Вывод:
c1Count: 511 c2Count: 490 z1Count: 511 z2Count: 490
Спецификация языка программирования Go
blockquote>Для операторов с диапазон range
Для каналов получаемые значения итерации являются последовательными значениями, посылаемыми в канале до тех пор, пока канал не будет закрыт. Если канал ноль, выражение диапазона блокируется навсегда.
blockquote>Close полезен для оператора for с предложением range.