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
class MyClass {
public:
MyClass() {
// Конструктор по умолчанию
}
};
MyClass obj; // Создание объекта
Если конструктор принимает параметры, объект создается так:
MyClass obj(arg1, arg2); // Передача аргументов в конструктор
Также объект можно создать динамически с помощью оператора
new
, что возвращает указатель на объект.
MyClass* obj = new MyClass(); // Динамическое создание объекта
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
CREATE INDEX idx_name ON users (name);
В примере создается индекс для столбца
name
в таблице users
. Это ускоряет поиск по имени, но может замедлить операции вставки и обновления, так как индексы требуют дополнительных ресурсов для поддержания актуальности.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
int number = 42;
double pi = 3.14;
bool isTrue = true;
string text = "Hello";
Эти типы являются частью системы типов .NET и поддерживают операции, специфичные для их категории. Пользовательские типы, такие как классы и структуры, создаются разработчиками для решения конкретных задач.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Route::get('/user', [UserController::class, 'index']);
Пример маршрута, который связывает URL с методом контроллера. Laravel также предоставляет инструменты для аутентификации, кеширования и обработки очередей, что ускоряет разработку.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
{}
, что делает код более читаемым и удобным.
name = "Alice"
age = 30
message = f"My name is {name} and I am {age} years old."
В примере переменные
name
и age
подставляются непосредственно в строку. F-строки поддерживают любые выражения, включая вызовы функций и арифметические операции.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
**kwargs
позволяет передавать в функцию произвольное количество именованных аргументов в виде словаря. Это полезно, когда количество или имена аргументов заранее неизвестны.
def example_function(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
Внутри функции
kwargs
становится словарем, где ключи — это имена аргументов, а значения — соответствующие им данные. Это часто используется для гибкости и расширяемости функций.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
ch := make(chan int) // Создание канала для передачи целых чисел
Каналы могут быть буферизированными или небуферизированными. Небуферизированные каналы блокируют отправку и получение до тех пор, пока другая сторона не будет готова. Буферизированные каналы позволяют отправлять данные без блокировки, пока буфер не заполнится.
ch <- 42 // Отправка значения в канал
value := <-ch // Получение значения из канала
Каналы часто используются для организации взаимодействия между горутинами и управления их жизненным циклом.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
HashSet
и TreeSet
— это реализации интерфейса Set
, но они отличаются по внутренней организации и характеристикам.HashSet
хранит элементы в хэш-таблице, что обеспечивает вставку, удаление и поиск за время O(1) в среднем случае. Элементы не упорядочены.
Set<String> hashSet = new HashSet<>();
hashSet.add("apple");
hashSet.add("banana");
TreeSet
использует красно-черное дерево для хранения элементов, что гарантирует их сортировку в натуральном порядке или по компаратору. Операции вставки, удаления и поиска выполняются за O(log n).
Set<String> treeSet = new TreeSet<>();
treeSet.add("apple");
treeSet.add("banana");
Выбор между
HashSet
и TreeSet
зависит от необходимости сортировки и требуемой производительности.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
int x = 10;
int* ptr = &x; // ptr хранит адрес переменной x
Указатели могут быть использованы для доступа к значению по адресу с помощью оператора разыменования
*
. Например, *ptr
вернёт значение переменной x
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
NULL
.
CREATE TABLE Users (
id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL
);
Первичный ключ используется для однозначной идентификации записей и обеспечения целостности данных. Он также часто используется для создания связей между таблицами через внешние ключи.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
int x = 42;
object obj = x; // Boxing
int y = (int)obj; // Unboxing
Boxing требует выделения памяти в куче, что может повлиять на производительность. Unboxing требует явного приведения типов и может вызвать исключение, если типы не совпадают.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Логические опер
Операторы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Backend собеседования
ато
ры a
nd, or
и not работают с булевыми значениями, но поддерживают short-circuit evaluation (ленивое вычисление). result = x and y # Возвращает x, если оно ложно, иначе y
result = x or y # Возвращает x, если оно истинно, иначе y
result = not x # Инвертирует булево значение
Операторы
and/or
возвращают последнее вычисленное значение, а не обязательно True/False
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3