🔥8👍2👎1🤯1
Forwarded from 🤟 TechRocks: Тестирование QA
🔥6👏2😱2👍1👎1😁1
Может ли функция Go быть создана на лету и использоваться в качестве значений?
Anonymous Quiz
88%
Да
12%
Нет
👍4
Что из следующего не является булевым типом в Go?
Anonymous Quiz
3%
true
2%
false
78%
0
17%
Все вышеперечисленное.
👎5👍4😁2🍾2👏1
Что из следующего верно в отношении выражения lvalue в Go?
Anonymous Quiz
30%
Выражения, которые относятся к ячейке памяти, называются выражениями «lvalue».
11%
Значение lvalue может отображаться как в левой, так и в правой части задания.
25%
Переменные являются lvalues и поэтому могут отображаться в левой части задания.
34%
Все вышеперечисленное.
🤡15👍6
Какой вариант объявления переменной не скомпилируется?
Anonymous Quiz
18%
var p = 99
61%
var p := 99
7%
p := 99
14%
все варианты скомпилируются
👌7👍1
Ответ на «Какие есть способы достать данные из JSON?»
Тут можно либо демаршализовать (
Для всего этого используется
Тут можно либо демаршализовать (
Unmarshal
) JSON и разлить его данные в объект с фиксированной структурой. Либо можно залить данные в пустой интерфейс.Для всего этого используется
json.Unmarshal()
👍13😁6👏1
Ответ на «Что такое горутины и зачем они нужны?»
Горутина (
Они нужны, если нам параллельно требуется сделать несколько действий. Например, ваш скрипт должен опросить множество сторонних сервисов и поработать с ответом. А что делать, если некоторые из сервисов долго отвечают? Как говорится, семеро одного не ждут! Каждому по горутине, и тогда не придется ждать «отстающих».
Горутина (
goroutine
) — это функция, которая выполняется асинхронно. Чтобы запустить горутину нужно лишь написать что-то вроде этого:go someFunc(args…) {Весит одна горутина около 4кб. Так что, если у вас 4ГБ оперативной памяти, то можно одновременно запустить немало горутин 🙂
//тут действия
}()
Они нужны, если нам параллельно требуется сделать несколько действий. Например, ваш скрипт должен опросить множество сторонних сервисов и поработать с ответом. А что делать, если некоторые из сервисов долго отвечают? Как говорится, семеро одного не ждут! Каждому по горутине, и тогда не придется ждать «отстающих».
👍27
Что из следующего верно для инструкции цикла в Go?
Anonymous Quiz
19%
если условие доступно, то цикл выполняется до тех пор, пока условие истинно.
6%
если диапазон доступен, то для цикла выполняется для каждого элемента в диапазоне.
73%
оба вышеупомянутых.
2%
ни один из вышеперечисленных.
Ответ на «Расскажите об ООП в Golang»
Формально оно в Go есть, но не совсем в том виде, в каком оно есть в PHP или Java.
В Go мы создаем структуры (читайте «классы») с определенными полями (свойствами), и далее создаем «экземпляры» этих структур. Методы описываются отдельно, а не внутри структур.
Формально оно в Go есть, но не совсем в том виде, в каком оно есть в PHP или Java.
В Go мы создаем структуры (читайте «классы») с определенными полями (свойствами), и далее создаем «экземпляры» этих структур. Методы описываются отдельно, а не внутри структур.
👎25👍4
Ответ на «Если в функции есть return, обязательно ли она вернет то, что указано в return?»
Мы привыкли, что обычно, если код внутри функции добрался до return, то на выходе мы получим то, что стоит после return. Но в Go есть интересная особенность: если есть именованный выходной параметр (параметры), то функция вернет последнее его значение, несмотря на то, что написано в
Мы привыкли, что обычно, если код внутри функции добрался до return, то на выходе мы получим то, что стоит после return. Но в Go есть интересная особенность: если есть именованный выходной параметр (параметры), то функция вернет последнее его значение, несмотря на то, что написано в
return
.package main
import "fmt"
// Основной метод
func main() {
// функция возвращает два значения
m, d := calculator(105, 7)
fmt.Println("105 x 7 = ", m)
fmt.Println("105 / 7 = ", d)
}
// функция с именованными аргументами
func calculator(a, b int) (mul int, div int) {
defer func() {
mul = 95
div = 27
}()
// здесь простое назначение т.к. инициализация произошла выше
//функция вернет именно эти переменные
mul = a * b
div = a / b
// здесь у вас есть ключевое слово return
return 1, 2
}
Функция вернет в итоге: 95 и 27.👍21👎3😁1
В каком из следующих методов передачи параметров изменения, внесенные в параметр внутри функции, не влияют на аргумент?
Anonymous Quiz
66%
вызов по значению.
19%
вызов по ссылке
7%
оба вышеуказанные.
8%
ничего из вышеперечисленного.
💩19👍1
Что из следующего верно в отношении range в Go?
Anonymous Quiz
38%
Ключевое слово range используется для цикла для перебора элементов массива, среза, канала или карты.
6%
С массивом и срезами он возвращает индекс элемента как целое.
3%
С помощью карт он возвращает ключ следующей пары ключ-значение.
52%
Все вышеперечисленное.
👍1
🤡39🤣16👎1
Ответ на "Что такое ломтик Golang?"
В Golang сканирование срезов рассматривается как абстракция над обычными массивами. Как и массивы, они имеют индексы, длину и ссылку на другой массив. Массивы в Golang могут содержать переменные, которые могут иметь значения одного и того же типа, но их размеры не могут быть изменены динамически. В этом плане помогают ломтики.
#собеседование
В Golang сканирование срезов рассматривается как абстракция над обычными массивами. Как и массивы, они имеют индексы, длину и ссылку на другой массив. Массивы в Golang могут содержать переменные, которые могут иметь значения одного и того же типа, но их размеры не могут быть изменены динамически. В этом плане помогают ломтики.
#собеседование
🤯15🤡7😁4👍2💩2
👣 Какие есть примитивы синхронизации?
Ответ
➡️
Ответ
➡️
wait group;
➡️ mutex;
➡️ atomic;
➡️ sync map;
➡️ channel.
Что думаете?👍9
Простые трюки для экономии памяти в Golang
При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще. Несмотря на то, что Go известен тем, что не потребляет много памяти, существуют способы дополнительно уменьшить ее потребление.
PS: Прикрепленная картинка была сгенерирована нейронной сетью Midjourney по запросу "new golang logo". Мы уже заменили иконку сайта Golangify на 3й из сгенерированных логотипов.
🔷 Статья: https://golangify.com/memory-saving-slice-struct-map
При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще. Несмотря на то, что Go известен тем, что не потребляет много памяти, существуют способы дополнительно уменьшить ее потребление.
PS: Прикрепленная картинка была сгенерирована нейронной сетью Midjourney по запросу "new golang logo". Мы уже заменили иконку сайта Golangify на 3й из сгенерированных логотипов.
🔷 Статья: https://golangify.com/memory-saving-slice-struct-map
👍9👎3🔥2💩2