Создать EnumSet можно с помощью статических методов, например,
EnumSet.of
, EnumSet.allOf
и EnumSet.noneOf
. EnumSet поддерживает операции добавления, удаления и проверки наличия элементов.
enum Color { RED, GREEN, BLUE }
EnumSet<Color> colors = EnumSet.of(Color.RED, Color.GREEN); // Создание EnumSet с выбранными цветами
colors.add(Color.BLUE); // Добавление элемента
if (colors.contains(Color.RED)) { // Проверка наличия элемента
// Действия, если элемент найден
}
Использование EnumSet позволяет легко управлять группами связанных значений enum, делая код более читабельным и поддерживаемым.
Ставь
Больше ответов на сайте
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
, за которым следует имя класса и тело класса в фигурных скобках. Внутри тела объявляются члены класса: переменные (поля) и функции (методы). По умолчанию все члены класса являются приватными, если не указано иное.
class MyClass {
private:
int privateVar; // Приватное поле
public:
void setVar(int value) { // Публичный метод
privateVar = value;
}
int getVar() { // Публичный метод
return privateVar;
}
};
В этом примере
privateVar
— приватное поле, доступное только внутри класса. Методы setVar
и getVar
— публичные, их можно вызывать извне для управления значением privateVar
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Пример использования подзапроса для фильтрации:
SELECT name
FROM employees
WHERE department_id = (
SELECT id
FROM departments
WHERE name = 'Sales'
);
Здесь подзапрос возвращает идентификатор отдела "Sales", который затем используется в основном запросе для выбора сотрудников из этого отдела.
Подзапросы могут быть вложены в SELECT, FROM, WHERE, HAVING и другие части SQL-запроса. Они помогают структурировать сложные запросы и выполнять их поэтапно.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Память в .NET делится на три поколения: 0, 1 и 2. Новые объекты создаются в поколении 0. Если объект переживает сборку мусора, он перемещается в следующее поколение. Чаще всего сборка мусора происходит в поколении 0, реже — в поколении 1, и ещё реже — в поколении 2.
GC работает в нескольких режимах: Workstation (для клиентских приложений) и Server (для серверных приложений). В режиме Server используется несколько потоков для сборки мусора, что повышает производительность.
Пример кода, показывающий, как можно влиять на GC:
// Принудительная сборка мусора
GC.Collect();
GC.WaitForPendingFinalizers();
// Отключение финализации для объекта
GC.SuppressFinalize(this);
GC автоматически определяет, когда нужно освободить память, но в некоторых случаях можно вручную вызвать сборку мусора, хотя это не рекомендуется делать без необходимости.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
type()
или isinstance()
.
x = 42
print(type(x) == int) # True, проверяет, является ли тип переменной x целым числом
print(isinstance(x, int)) # True, проверяет, является ли x экземпляром int или его подкласса
type()
возвращает точный тип объекта, а isinstance()
позволяет проверить принадлежность к типу или его подклассам, что делает его более гибким для работы с наследованием.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Фреймворки ускоряют разработку, обеспечивают лучшую организацию кода и часто включают встроенные решения для типичных задач, таких как маршрутизация, работа с базами данных и безопасность.
Ставь
Больше ответов на сайте
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