(`p`) в соответствии с этим значением. ничего особенного, просто какие-то структурки, которые менеджат контекст треда. но каждой p нужен тред (`m`), и вот здесь, в месте где инициализируются p, можно увидеть, как создаются треды под каждую p: https://github.com/golang/go/blob/6ecd5f750454665f789e3d557548bb5a65ad5c3a/src/runtime/proc.go#L1473
Вопрос, почему тредов в итоге я вижу не более 20 (через профайлер)? Куда они деваются, если мы явно видим создание тредов?
Почитал кусок кода и у меня сходу вопрос - это типа ок, что переменные названы одной буквой? Авторов голанга по идее бы макконеел за такое побил клавиатурой по голове
есть мнение, что если контекст функции понятен, но нет смысла вплетать шумиху буквенную
В целом не ок, рекомендуется соблюдать баланс скоупа и длины переменной. Если это небольшой цикл, то можно i. Если внутри цикла много кода и i потом много раз используется, то лучше дать семантическое название, типа book_id. Есть линтер (не идеальный), который проверяет это: https://github.com/blizzy78/varnamelen Но есть нюансы, в виде условных обозначений. Если везде базы данных называют db, то две буквы ок. https://dave.cheney.net/practical-go/presentations/qcon-china.html#_use_a_consistent_naming_style И упрекать авторов го в том, что они не следуют go way не совсем честно, тк как такового го еще тогда не было и обросших гайдлайнов к нему.
по вашей же ссылке type Person struct { Name string Age int } // AverageAge returns the average age of people. func AverageAge(people []Person) int { if len(people) == 0 { return 0 } var count, sum int for _, p := range people { sum += p.Age count += 1 } return sum / count } In this example, the range variable p is declared on line 10 and only referenced once, on the following line. p lives for a very short time both on the page, and during the execution of the function. A reader who is interested in the effect values of p have on the program need only read two lines. By comparison people is declared in the function parameters and lives for seven lines. The same is true for sum, and count, thus they justify their longer names. The reader has to scan a wider number of lines to locate them so they are given more distinctive names. I could have chosen s for sum and c (or possibly n) for count but this would have reduced all the variables in the program to the same level of importance. I could have chosen p instead of people but that would have left the problem of what to call the for … range iteration variable. The singular person would look odd as the loop iteration variable which lives for little time has a longer name than the slice of values it was derived from.
в целом ок получается
Второе предложение: Если это небольшой цикл, то можно i. Если внутри цикла много кода и i потом много раз используется, то лучше дать семантическое название, типа book_id.
Если скоуп короткий, можно p. Если там 20 строк внутри цикла, лучше person
какой персон в фалй proc
Я так понимаю, вы не читали даже то, что сами прислали https://t.me/gogolang/882659
Добро пожаловать в го
не ок. И не надо так делать. Но есть места, где по-другому неудобно и в целом выходит терпимо
там еще беконечная копипаста err := someFunc() if err != nil { return err } 😁
Что ж за язык такой!
Сколько у вас ядер на проце?:)
(метательных)
Обсуждают сегодня