Фреймворки ускоряют разработку, обеспечивают лучшую организацию кода и часто включают встроенные решения для типичных задач, таких как маршрутизация, работа с базами данных и безопасность.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
interface
.
type Writer interface {
Write([]byte) (int, error)
}
В этом примере интерфейс
Writer
требует реализации метода Write
, который принимает срез байт и возвращает количество записанных байт и ошибку.Чтобы тип реализовал интерфейс, он должен содержать все методы интерфейса с точно такой же сигнатурой. Например:
type File struct {
name string
}
func (f File) Write(data []byte) (int, error) {
// Логика записи данных
return len(data), nil
}
Тип
File
реализует интерфейс Writer
, так как содержит метод Write
с соответствующей сигнатурой. Это позволяет использовать File
везде, где требуется Writer
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
В этом примере метод
add
объявлен с модификатором доступа public
, возвращает тип int
и принимает два параметра типа int
. Метод выполняет сложение двух чисел и возвращает результат.Методы могут быть статическими, если используется ключевое слово
static
. Такие методы вызываются через имя класса, а не через экземпляр объекта.
public class MathUtils {
public static int multiply(int a, int b) {
return a * b;
}
}
Здесь метод
multiply
статический и может быть вызван как MathUtils.multiply(2, 3)
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
class Animal {
public:
void eat() {
// Логика питания
}
};
class Dog : public Animal {
public:
void bark() {
// Логика лая
}
};
Здесь класс
Dog
наследует методы класса Animal
, такие как eat()
, и добавляет собственный метод bark()
. Модификаторы доступа (public,
protected
, private) определяют, как члены родительского класса будут доступны в дочернем. Например, public
наследование сохраняет уровень доступа членов родительского класса.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
JOIN
: -
INNER JOIN
: возвращает строки, где есть совпадение в обеих таблицах.-
LEFT JOIN
: возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадений нет, возвращается NULL
.-
RIGHT JOIN
: аналогичен LEFT JOIN
, но возвращает все строки из правой таблицы.-
FULL JOIN
: возвращает строки, если есть совпадение в одной из таблиц.
SELECT orders.id, customers.name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id;
В этом примере объединяются таблицы
orders
и customers
по полю customer_id
, чтобы получить заказы с именами клиентов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Каждая сборка включает манифест, который содержит информацию о версии, зависимостях и других метаданных. Сборки обеспечивают безопасность, управление версиями и повторное использование кода.
Пример создания сборки:
// Простой класс в сборке
public class Calculator
{
public int Add(int a, int b) => a + b;
}
Этот код может быть скомпилирован в DLL или EXE, которые затем используются в других проектах.
Сборки могут быть приватными (для одного приложения) или общедоступными (GAC — Global Assembly Cache), если они используются несколькими приложениями.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Скалярные типы:
-
int
— целые числа. -
float
(или double) — числа с плавающей точкой. -
string
— строки. -
bool
— логические значения (true/false). Составные типы:
-
array
— массивы, которые могут содержать элементы разных типов. -
object
— экземпляры классов. Специальные типы:
-
null
— отсутствие значения. -
resource
— ссылка на внешний ресурс (например, файл или соединение с базой данных). Пример использования типов:
$number = 42; // int
$price = 19.99; // float
$name = "PHP"; // string
$isActive = true; // bool
$colors = ["red", "green", "blue"]; // array
PHP — язык с динамической типизацией, поэтому тип переменной определяется в момент присваивания значения.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
def
, за которым следует имя функции и круглые скобки с параметрами (если они есть). Тело функции начинается с отступа и содержит код, который будет выполняться при вызове функции.
def greet(name):
return f"Hello, {name}"
В данном примере создана функция
greet
, которая принимает один аргумент name
и возвращает строку с приветствием. Функция может быть вызвана с передачей аргумента:
message = greet("Alice")
Функции могут иметь параметры по умолчанию, что делает их более гибкими:
def greet(name="Guest"):
return f"Hello, {name}"
Если аргумент не передан, будет использовано значение по умолчанию.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
interface Target {
void request();
}
class Adaptee {
void specificRequest() {
// Логика, которая должна быть адаптирована
}
}
class Adapter implements Target {
private Adaptee adaptee;
Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
В примере
Adapter
реализует интерфейс Target
и использует объект Adaptee
, чтобы адаптировать его метод specificRequest
под метод request
. Это позволяет клиенту работать с Adaptee
через интерфейс Target
, не изменяя его исходный код.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
go func() {
fmt.Println("Выполняется в горутине")
}()
Горутины создаются с помощью ключевого слова
go
. Они работают поверх потоков ОС, но потребляют меньше ресурсов. Планировщик Go автоматически распределяет их по доступным ядрам процессора.
func main() {
go task("A")
go task("B")
time.Sleep(time.Second) // Ожидание завершения горутин
}
Для синхронизации горутин используются каналы (chan) или примитивы из пакета
sync
. Горутины завершаются при завершении функции или при выходе из программы.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
git branch
.
git branch new-feature
Эта команда создает ветку с именем
new-feature
, но не переключает на нее. Для создания и переключения одновременно используется команда git checkout -b
.
git checkout -b new-feature
После создания ветки можно начать работу с ней. Чтобы отправить новую ветку в удаленный репозиторий, используется команда
git push
.
git push -u origin new-feature
Флаг
-u
связывает локальную ветку с удаленной, чтобы в дальнейшем можно было использовать git push
без указания имени ветки.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#include <vector>
#include <algorithm>
std::vector<int> numbers = {3, 1, 4, 1, 5};
std::sort(numbers.begin(), numbers.end()); // Сортировка вектора
STL обеспечивает высокую производительность и гибкость, так как все компоненты являются шаблонными и работают с любыми типами данных. Это одна из ключевых частей стандартной библиотеки C++.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
CREATE
, ALTER
, DROP
.
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
DML (Data Manipulation Language) предназначен для работы с данными внутри таблиц: вставка, обновление, удаление и выборка. Основные команды:
INSERT
, UPDATE
, DELETE
, SELECT
.
INSERT INTO users (id, name) VALUES (1, 'Alice');
DDL работает со структурой, а DML — с содержимым таблиц.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
class Person {
public string Name;
public int Age;
// Конструктор с параметрами
public Person(string name, int age) {
Name = name;
Age = age;
}
}
В этом примере конструктор принимает два параметра и присваивает их значения полям объекта. Если конструктор не определён, компилятор создаёт конструктор по умолчанию без параметров.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
fopen()
с режимом "r"
. Она возвращает указатель на файл, который можно использовать для дальнейшего чтения.
$file = fopen("example.txt", "r");
if ($file) {
while (($line = fgets($file)) !== false) {
echo $line;
}
fclose($file);
} else {
echo "Не удалось открыть файл.";
}
Функция
fgets()
читает файл построчно. После завершения работы с файлом его необходимо закрыть с помощью fclose()
. Если файл не существует или недоступен, fopen()
вернёт false
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
{}
или функции set()
. Особенность множества заключается в том, что оно содержит только уникальные элементы и не поддерживает порядок.
my_set = {1, 2, 3, 4} # Создание множества
Если передать список или строку в
set()
, будут удалены дубликаты:
unique_elements = set([1, 2, 2, 3]) # {1, 2, 3}
Множества поддерживают операции объединения, пересечения и разности.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Ключевое слово
Функции, вызванные с
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Backend собеседования
defer
в Go используется для отложенного выполнения функции до завершения текущей функции. Это полезно для освобождения ресурсов, таких как закрытие файлов или разблокировка мьютексов.
func readFile(filename string) {
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close() // Закрытие файла будет выполнено перед выходом из функции
// Работа с файлом
}
Функции, вызванные с
defer
, выполняются в порядке LIFO (последний добавленный — первый выполненный). Это гарантирует, что ресурсы освобождаются в правильном порядке.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
new
, за которым следует вызов конструктора класса. Конструктор инициализирует объект и выделяет память под него.
ClassName obj = new ClassName();
Если у класса есть параметризованный конструктор, можно передать аргументы:
ClassName obj = new ClassName(arg1, arg2);
После создания объект можно использовать для вызова методов или доступа к полям. Если конструктор по умолчанию отсутствует, его необходимо явно определить в классе.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
git log
. Она отображает список коммитов в обратном хронологическом порядке, включая хэш, автора, дату и сообщение коммита.
git log
Для более компактного вывода можно добавить флаг
--oneline
, который покажет только хэш и сообщение коммита.
git log --oneline
Чтобы ограничить количество отображаемых коммитов, используется флаг
-n
, например, -n 5
покажет последние 5 коммитов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2