Пример использования подзапроса для фильтрации:
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
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