1$masiv = [1, 2, 3, 4, 5];
2shuffle($masiv);
3print_r($masiv); // результат буде випадковим
4
1$masiv = ['apple', 'banana', 'cherry', 'date'];
2$randomKeys = array_rand($masiv, 2);
3echo $masiv[$randomKeys[0]]; // випадковий елемент
4
1$assocArray = [
2 "a" => "apple",
3 "b" => "banana",
4 "c" => "cherry",
5];
6$values = $assocArray; // зберігаємо значення
7shuffle($values); // перемішуємо значення
8$newAssocArray = array_combine(array_keys($assocArray), $values); // відновлюємо асоціативність
9print_r($newAssocArray);
10
sort()
впорядковує масив у зростаючому порядку.1$items = ['A', 'B', 'C', 'D'];
2$randomItem = $items[array_rand($items)]; // отримаємо випадковий елемент
3
1$dynamicArray = [];
2for ($i = 1; $i <= 10; $i++) {
3 $dynamicArray[] = $i;
4}
5shuffle($dynamicArray); // перемішуємо заповнений масив
6print_r($dynamicArray);
7
1function customShuffle(&$array) {
2 for ($i = count($array) - 1; $i > 0; $i--) {
3 $j = rand(0, $i);
4 // обмін значеннями
5 $temp = $array[$i];
6 $array[$i] = $array[$j];
7 $array[$j] = $temp;
8 }
9}
10$myArray = [1, 2, 3, 4, 5];
11customShuffle($myArray);
12print_r($myArray);
13
float64
в int
, вам потрібно зробити так:strconv
. Ось як це виглядає:1import "strconv"
2
3var s string = "123"
4var i, err = strconv.Atoi(s) // i буде дорівнювати 123
5
strconv.Itoa
:1type Person struct {
2 Name string
3 Age int
4}
5
6p := Person{Name: "Alice", Age: 30}
7m := map[string]interface{}{
8 "Name": p.Name,
9 "Age": p.Age,
10}
11
1var m = map[string]interface{}{
2 "Name": "Alice",
3 "Age": 30,
4}
5
6p := Person{
7 Name: m["Name"].(string),
8 Age: m["Age"].(int),
9}
10
1i, err := strconv.Atoi("abc") // це викличе помилку
2if err != nil {
3 // Обробіть помилку
4}
5
1func printAge(age interface{}) {
2 switch v := age.(type) {
3 case int:
4 fmt.Printf("Age is: %d\n", v)
5 case string:
6 fmt.Printf("Age is: %s\n", v)
7 default:
8 fmt.Println("Unknown type")
9 }
10}
11
.(type)
в switch
. Це може бути корисно, коли ви не знаєте тип значення заздалегідь.1var x interface{} = 42
2
3switch v := x.(type) {
4case int:
5 fmt.Printf("x is an int: %d\n", v)
6case string:
7 fmt.Printf("x is a string: %s\n", v)
8default:
9 fmt.Println("Unknown type")
10}
11
Switch
або SwitchListTile
. Ось як виглядає основний приклад:1Switch(
2 value: isOn,
3 onChanged: (value) {
4 setState(() {
5 isOn = value;
6 });
7 },
8)
9
1class MySwitchExample extends StatefulWidget {
2 @override
3 _MySwitchExampleState createState() => _MySwitchExampleState();
4}
5
6class _MySwitchExampleState extends State<MySwitchExample> {
7 bool isOn = false;
8
9 @override
10 Widget build(BuildContext context) {
11 return Scaffold(
12 appBar: AppBar(title: Text("Корпус Перемикача")),
13 body: Center(
14 child: Switch(
15 value: isOn,
16 onChanged: (value) {
17 setState(() {
18 isOn = value;
19 });
20 },
21 ),
22 ),
23 );
24 }
25}
26
1Switch(
2 value: isOn,
3 activeColor: Colors.green,
4 inactiveThumbColor: Colors.grey,
5 onChanged: (value) {
6 setState(() {
7 isOn = value;
8 });
9 },
10)
11
1SwitchListTile(
2 title: Text("Увімкнути сповіщення"),
3 value: isOn,
4 onChanged: (value) {
5 setState(() {
6 isOn = value;
7 });
8 },
9)
10
activeColor
та inactiveThumbColor
при створенні перемикача.SwitchListTile
, щоб додати текстовий опис поряд з перемикачем.SharedPreferences
.DELETE
і TRUNCATE
. Чому ж так важливо розуміти, коли і як їх використовувати? Адже ці команди сильно відрізняються за своїм функціоналом.DELETE
і TRUNCATE
.DELETE
?DELETE
призначена для видалення конкретних рядків з таблиці. Завдяки можливості встановлення умов видалення, вона дозволяє нам точно контролювати, які дані ми хочемо видалити. Наприклад, ви можете видалити користувача з бази даних, вказавши його ідентифікаційний номер.TRUNCATE
?TRUNCATE
служить для очищення всієї таблиці від даних. Вона не дозволяє вказувати умови, тож при її виконанні всі рядки без винятків будуть видалені. Це додає швидкості, але зменшує контроль над процесом.DELETE
table_name
) і за якою умовою (condition
) потрібно видалити дані.DELETE
customers
.DELETE
TRUNCATE
TRUNCATE
виглядає дуже просто:TRUNCATE
orders
, не залишаючи жодного рядка.TRUNCATE
logs
, щоб звільнити місце:DELETE
та TRUNCATE
DELETE
DELETE
є контроль. Ви можете видаляти конкретні рядки, що є критично важливим для підтримки цілісності даних. Крім того, команда DELETE
тригери активує, що може бути корисним для ведення обліку змін.DELETE
DELETE
може бути повільнішим, оскільки кожен видалений рядок реєструється в журналах транзакцій. Це може бути значною втратою продуктивності, особливо при роботі з великими таблицями.TRUNCATE
DELETE
, команда TRUNCATE
виконується значно швидше, оскільки не реєструє видалення кожного окремого рядка. Це робить її ідеальним вибором для великих таблиць, які потрібно швидко очищати.TRUNCATE
TRUNCATE
не дозволяє вам вибирати, які дані видаляти, і не активує тригери. Якщо у вас є зовнішні ключі, ви не зможете скористатися цією командою без попереднього видалення залежних записів.DELETE
?DELETE
. Це особливо доцільно, якщо ваша база даних має активні тригери, які потрібно активувати під час видалення.TRUNCATE
?TRUNCATE
, коли потрібно швидко очистити таблицю. Якщо ви впевнені, що хочете видалити всі дані, ця команда — ідеальний варіант.DELETE
та TRUNCATE
в SQL є потужними інструментами для управління даними. Розуміння їх відмінностей і переваг дозволяє вам приймати обґрунтовані рішення, що веде до покращення продуктивності вашої бази даних. Не забувайте, що правильний вибір команди може вплинути на швидкість роботи та цілісність даних.TRUNCATE
?TRUNCATE
призводить до остаточного видалення всіх даних без можливості відновлення.TRUNCATE
не працює з таблицями, які мають зовнішні ключі, без попередньої модифікації цих зв'язків.DELETE
?DELETE
.TRUNCATE
швидша, оскільки не реєструє видалення кожного рядка.DELETE
, коли потрібен контроль над видаленням конкретних рядків, і TRUNCATE
для швидкого очищення всієї таблиці.{}
. Всередині дужок ви можете визначити пари «ключ-значення». Наприклад:1const car = {
2 brand: 'Toyota',
3 model: 'Camry',
4 year: 2020,
5 start: function() {
6 console.log('Автомобіль запущено!');
7 }
8};
9
car
є об'єктом з властивостями brand
, model
, і year
, а також методом start
.1function Person(name, age) {
2 this.name = name;
3 this.age = age;
4}
5
6const john = new Person('Іван', 25);
7console.log(john.name); // Виведе 'Іван'
8
this
this
посилається на об'єкт, в контексті якого функція була викликана. Це може бути насправді корисно в методах об'єктів:1const user = {
2 username: 'johndoe',
3 login() {
4 console.log(this.username + ' увійшов у систему');
5 }
6};
7
8user.login(); // Виведе 'johndoe увійшов у систему'
9
1car.color = 'червоний';
2car.drive = function() {
3 console.log('Автомобіль їде!');
4};
5
obj.property
.re
) робить їх використання простим і зрозумілим. У цій статті ми розглянемо, що таке регулярні вирази, як вони працюють у Python, а також наведемо кілька корисних прикладів.\d
означає "цифра", а \w
— "буква або цифра". Вивчаючи регулярні вирази, ви зможете створювати власні шаблони для вирішення конкретних задач.re
в Pythonre
, який забезпечує класичні функції для роботи з регулярними виразами.re
re
в вашому коді:re
пропонує кілька основних функцій для роботи з регулярними виразами.re.match()
1result = re.match(r'\d{3}', '123abc')
2if result:
3 print("Збіг!")
4else:
5 print("Не збігається.")
6
re.search()
search()
шукає за шаблоном у всьому рядку. Якщо знаходить — повертає об'єкт, інакше — None
.re.findall()
1matches = re.findall(r'\d+', 'abc123def456')
2print(matches) # Виведе ['123', '456']
3
re.sub()
sub()
замінює всі збіги шаблону на вказане значення.1email_pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
2email = "[email protected]"
3if re.match(email_pattern, email):
4 print("Email вірний!")
5else:
6 print("Email помилковий.")
7
1text = "Зателефонujte нам за номером 093-123-4567."
2phone_pattern = r'\d{3}-\d{3}-\d{4}'
3phone_numbers = re.findall(phone_pattern, text)
4print(phone_numbers) # Виведе ['093-123-4567']
5
re
?re.match()
, re.search()
, re.findall()
, re.sub()
.'
) або подвійні ("
) лапки для визначення рядків.true
або false
. Це важливо для роботи з умовами.+
чи .concat
:1full_greeting = greeting + " Я " + name
2puts full_greeting # Привіт, світ! Я Аліса
3
1fruits.push('grape') # Додає 'grape' до масиву
2fruits.delete('banana') # Видаляє 'banana' з масиву
3
Box
може зберігати об'єкти будь-якого типу.1class Box<T>(val item: T) {
2 fun describe() {
3 println("Цей бокс містить: $item")
4 }
5}
6
7fun main() {
8 val intBox = Box(123)
9 intBox.describe() // Цей бокс містить: 123
10
11 val stringBox = Box("Привіт, Kotlin!")
12 stringBox.describe() // Цей бокс містить: Привіт, Kotlin!
13}
14
where
.1class Box<T : Number>(val item: T) {
2 fun increase(by: T) {
3 // Логіка збільшення значення
4 }
5}
6
T
так, що він може бути лише підкласом Number
. Це робить ваш код більш надійним та безпечним.