Что такое параметры inout?
Когда мы передаем value типы в качестве аргументов в функцию, они статичны – менять их нельзя. Было бы удобно иметь возможность модифицировать данные значения. К счастью, у Swift для этого есть решение: ключевое слово inout, которое используется перед типом параметра в связке с '&' перед аргументом. Это позволит нам модифицировать значение внутри функции.
На самом деле, мы не модифицируем значением напрямую. Такое поведение называется "copy-in copy-out" или же "call by value result" и работает следующим образом:
1. Когда мы вызываем функцию, значение аргумента копируется.
2. Дальше внутри функции копия модифицируется.
3. По возращению функции Swift присваивает модифицированное значение оригинальному аргументу.
Параметры inout встречаются чаще, чем вам может показаться на первый взгляд. Например, оператор += использует inout для изменения строки, когда вы хотите добавить одну строку к другой.
#swift
Подписывайтесь на канал 👉@coddy_academy
Когда мы передаем value типы в качестве аргументов в функцию, они статичны – менять их нельзя. Было бы удобно иметь возможность модифицировать данные значения. К счастью, у Swift для этого есть решение: ключевое слово inout, которое используется перед типом параметра в связке с '&' перед аргументом. Это позволит нам модифицировать значение внутри функции.
На самом деле, мы не модифицируем значением напрямую. Такое поведение называется "copy-in copy-out" или же "call by value result" и работает следующим образом:
1. Когда мы вызываем функцию, значение аргумента копируется.
2. Дальше внутри функции копия модифицируется.
3. По возращению функции Swift присваивает модифицированное значение оригинальному аргументу.
Параметры inout встречаются чаще, чем вам может показаться на первый взгляд. Например, оператор += использует inout для изменения строки, когда вы хотите добавить одну строку к другой.
#swift
Подписывайтесь на канал 👉@coddy_academy
👍1
Handlebars выражение {{else}}
Handlebars выражение
#javanoscript
Подписывайтесь на канал 👉@coddy_academy
Handlebars выражение
{{else}} можно вставить в помощник блока {{if}}. Содержимое шаблона внутри секции else вступает в силу, когда предыдущие условия ложные.#javanoscript
Подписывайтесь на канал 👉@coddy_academy
👍2
Как удалить директорию в java?
Вы можете использовать File.delete() для удаления директории.
#java
Подписывайтесь на канал 👉@coddy_academy
Вы можете использовать File.delete() для удаления директории.
import java.io.File;
class Main {
public static void main(String[] args) throws Exception {
File file = new File("delete_folder");
if (file.delete()){
System.out.println("Директория успешно удалена");
}
}
}
#java
Подписывайтесь на канал 👉@coddy_academy
👍1
Как декодировать property list используя Decodable?
Property list, обычно сокращенно plist, представляет собой XML-файл, содержащий данные в формате "ключ-значение". Вы можете использовать его в своих приложениях для iOS в качестве простого хранилища данных. Эта функция-утилита позволит вам задекодить данные в нужный удобный вам тип, используя Decodable.
#swift
Подписывайтесь на канал 👉@coddy_academy
Property list, обычно сокращенно plist, представляет собой XML-файл, содержащий данные в формате "ключ-значение". Вы можете использовать его в своих приложениях для iOS в качестве простого хранилища данных. Эта функция-утилита позволит вам задекодить данные в нужный удобный вам тип, используя Decodable.
extension Bundle {
func decodePlist<T: Decodable>(_ filename: String, to entity: T.Type) -> T? {
guard
let path = Bundle.main.path(forResource: filename, ofType: "plist"),
let xml = FileManager.default.contents(atPath: path),
let content = try? PropertyListDecoder().decode(T.self, from: xml)
else { return nil }
return content
}
}
#swift
Подписывайтесь на канал 👉@coddy_academy
👍1
Сортировка словаря по значениям
Распространена практика использования словарей в качестве таблиц для хранения данных. Сортировка данных словаря по значениям ключей, а не самим ключам, нередко ставит в тупик. Задача решается довольно просто при помощи соответствующего аргумента функции сортировки
#python
Подписывайтесь на канал 👉@coddy_academy
Распространена практика использования словарей в качестве таблиц для хранения данных. Сортировка данных словаря по значениям ключей, а не самим ключам, нередко ставит в тупик. Задача решается довольно просто при помощи соответствующего аргумента функции сортировки
#python
Подписывайтесь на канал 👉@coddy_academy
👍1
Свойство .count
Свойство
#swift
Подписывайтесь на канал 👉@coddy_academy
Свойство
.count возвращает целое число, представляющее количество пар ключ-значение в словаре.#swift
Подписывайтесь на канал 👉@coddy_academy
Парсинг JSON файлов в словарь
Формат JSON используется для хранения пар ключ-значение. Python json модуль позволяет считывать такой формат данных и парсить его в словарь. Функция
#python
Подписывайтесь на канал 👉@coddy_academy
Формат JSON используется для хранения пар ключ-значение. Python json модуль позволяет считывать такой формат данных и парсить его в словарь. Функция
json.load принимает файловый объект в качестве аргумента и возвращает данные в формате словаря.#python
Подписывайтесь на канал 👉@coddy_academy
👍2
Как проверить содержится ли элемент в массиве на java?
Вы можете использовать условие и цикл для проверки существования элемента в массиве.
#java
Подписывайтесь на канал 👉@coddy_academy
Вы можете использовать условие и цикл для проверки существования элемента в массиве.
class Main {
public static void main(String[] args) throws Exception {
int[] firstArray = new int[]{52, 21, 94, 29, 91};
int[] secondArray = new int[]{82, 74, 51, 39, 23};
int element = 21;
for (int i = 0; i < firstArray.length; i++) {
if (firstArray[i] == element){
System.out.println(element + " in first array");
}
}
for (int i = 0; i < secondArray.length; i++) {
if (secondArray[i] == element){
System.out.println(element + " in second array");
}
}
// Вывод : 21 in first array
}
}
#java
Подписывайтесь на канал 👉@coddy_academy
👍1👎1
Как использовать ключевое слово rethrows?
По моему опыту, использовать это ключевое слово вы будете не слишком часто. Тем не менее, понимание принципов его работы поможет вам лучше определять случаи, когда rethrows будет полезным.
Ключевое слово rethrows используется, когда вы пишете функцию (назовем ее A), которая принимает другую функцию в качестве параметра (назовем ее B). Rethrows делает так, что если функция B выбрасывает ошибки, тогда и A будет выбрасывать ошибки. Если функция B не выбрасывает ошибки, тогда и A этого делать не будет.
Какое преимущество мы получаем? Rethrows позволяет убрать лишние try/catch в случаях, где они не нужны.
Возьмем стандартные 'map', 'filter', 'forEach' для массивов. Когда вы внутри замыкания помечаете что-то как try, Swift просит вас добавить try еще и для вызова "Call can throw but is not marked with 'try'". Если внутри замыкания ничего ошибку выбрасывать не будет, тогда и целый вызов помечать try не нужно.
Данное поведение во всех описанных выше методах реализовано с помощью rethrows.
#swift
Подписывайтесь на канал 👉@coddy_academy
По моему опыту, использовать это ключевое слово вы будете не слишком часто. Тем не менее, понимание принципов его работы поможет вам лучше определять случаи, когда rethrows будет полезным.
Ключевое слово rethrows используется, когда вы пишете функцию (назовем ее A), которая принимает другую функцию в качестве параметра (назовем ее B). Rethrows делает так, что если функция B выбрасывает ошибки, тогда и A будет выбрасывать ошибки. Если функция B не выбрасывает ошибки, тогда и A этого делать не будет.
Какое преимущество мы получаем? Rethrows позволяет убрать лишние try/catch в случаях, где они не нужны.
Возьмем стандартные 'map', 'filter', 'forEach' для массивов. Когда вы внутри замыкания помечаете что-то как try, Swift просит вас добавить try еще и для вызова "Call can throw but is not marked with 'try'". Если внутри замыкания ничего ошибку выбрасывать не будет, тогда и целый вызов помечать try не нужно.
Данное поведение во всех описанных выше методах реализовано с помощью rethrows.
#swift
Подписывайтесь на канал 👉@coddy_academy
👍2
Justify Self
CSS свойство justify-self используется для того, чтобы определить, как отдельный элемент сетки позиционирует себя вдоль строки или встроенной оси. По умолчанию элементы сетки наследуют значение justify-items свойства контейнера. Если установлено значение justify-self, оно переопределит унаследованное значение justify-items.
#css
Подписывайтесь на канал 👉@coddy_academy
CSS свойство justify-self используется для того, чтобы определить, как отдельный элемент сетки позиционирует себя вдоль строки или встроенной оси. По умолчанию элементы сетки наследуют значение justify-items свойства контейнера. Если установлено значение justify-self, оно переопределит унаследованное значение justify-items.
#css
Подписывайтесь на канал 👉@coddy_academy
👍1
Как использовать String в качестве ошибок?
Обычно, чтобы сообщать о том, что операция завершилась с ошибкой, в Swift используется протокол Error. Когда мы проектируем чистое API, обычной практикой для выполнения данной цели является создание собственного error enum, в котором прописываются нужные варианты ошибок под конкретный функционал.
Но что делать, если мы хотим получить простое решение для случаев, когда ошибки единичные и смысла создавать отдельный enum нет?
Тогда можно реализовать
#css #handyExtensions #error #basic #swift
Подписывайтесь на канал 👉@coddy_academy
Обычно, чтобы сообщать о том, что операция завершилась с ошибкой, в Swift используется протокол Error. Когда мы проектируем чистое API, обычной практикой для выполнения данной цели является создание собственного error enum, в котором прописываются нужные варианты ошибок под конкретный функционал.
Но что делать, если мы хотим получить простое решение для случаев, когда ошибки единичные и смысла создавать отдельный enum нет?
Тогда можно реализовать
LocalizedError для String и использовать строку в качестве ошибки. Такой вариант идеально подойдет для возвращение простых, user-facing ошибок.extension String: LocalizedError {
public var errorDenoscription: String? { self }
}
func loadDataFromServer(result: @escaping (Result<String, Error>) -> Void) {
// ...
result(.failure("Что-то пошло не так"))
}#css #handyExtensions #error #basic #swift
Подписывайтесь на канал 👉@coddy_academy
Обработка ошибок асинхронной функции
Функции JavaScript async используют try...catch операторы для обработки ошибок. Этот метод позволяет совместно обрабатывать ошибки для синхронного и асинхронного кода.
#javanoscript
Подписывайтесь на канал 👉@coddy_academy
Функции JavaScript async используют try...catch операторы для обработки ошибок. Этот метод позволяет совместно обрабатывать ошибки для синхронного и асинхронного кода.
#javanoscript
Подписывайтесь на канал 👉@coddy_academy
👍2
Запись в файл
По умолчанию файл при открытии с помощью
#python
Подписывайтесь на канал 👉@coddy_academy
По умолчанию файл при открытии с помощью
open() предназначен только для чтения. Второй аргумент 'r' передается ему по умолчанию. Чтобы записать в файл, сначала откройте файл с разрешением на запись с помощью аргумента 'w'. Затем используйте метод .write() для записи в файл. Если файл уже существует, все предыдущее содержимое будет перезаписано.#python
Подписывайтесь на канал 👉@coddy_academy
👍2
Count()
Результат выполненного LINQ запроса демонстрирует метод
#c_sharp
Подписывайтесь на канал 👉@coddy_academy
Результат выполненного LINQ запроса демонстрирует метод
Count(), который возвращает количество содержащихся в нем элементов.#c_sharp
Подписывайтесь на канал 👉@coddy_academy
👍1
Как изменить маркеры списка в css?
Изменить маркеры списка в css можно через свойство list-style :
#css
Подписывайтесь на канал 👉@coddy_academy
Изменить маркеры списка в css можно через свойство list-style :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<style>
ul {
list-style: square;
}
</style>
</head>
<body>
<ul>
<li><span>Собака</span></li>
<li><span>Кошка</span></li>
<li><span>Птица</span></li>
</ul>
</body>
</html>#css
Подписывайтесь на канал 👉@coddy_academy
👍2
Медиа-запрос
Медиа-запрос CSS используется для адаптации отображения веб-сайта к разным размерам экрана. Медиа-запрос начинается с ключевого слова media, за которым следует одно или несколько условий, проверяющих размер экрана, разрешение и/или другие свойства. Если эти условия соблюдены, все правила CSS в медиа-запросе будут применены к странице.
#css
Подписывайтесь на канал 👉@coddy_academy
Медиа-запрос CSS используется для адаптации отображения веб-сайта к разным размерам экрана. Медиа-запрос начинается с ключевого слова media, за которым следует одно или несколько условий, проверяющих размер экрана, разрешение и/или другие свойства. Если эти условия соблюдены, все правила CSS в медиа-запросе будут применены к странице.
#css
Подписывайтесь на канал 👉@coddy_academy
👍3
Функция fetch()
Функцию
#javanoscript
Подписывайтесь на канал 👉@coddy_academy
Функцию
Fetch API fetch() можно использовать для создания запросов. Принимая дополнительные аргументы, запрос можно настроить. Например, изменить тип запроса, заголовки, указать тело запроса и многое другое.#javanoscript
Подписывайтесь на канал 👉@coddy_academy
Функция dir()
В Python встроенная функция
Если в качестве аргумента объект, то
#python
Подписывайтесь на канал 👉@coddy_academy
В Python встроенная функция
dir() без каких-либо аргументов возвращает список всех атрибутов в текущей области. Если в качестве аргумента объект, то
dir() пытается вернуть все допустимые атрибуты объекта.#python
Подписывайтесь на канал 👉@coddy_academy
👍1
Select
В запросах
#c_sharp
Подписывайтесь на канал 👉@coddy_academy
В запросах
LINQ оператор Select определяет, что возвращается для каждого элемента результирующего запроса. Его можно использовать как в методе, так и в синтаксисе запроса.#c_sharp
Подписывайтесь на канал 👉@coddy_academy
Как перевести double в string в java?
Вы можете использовать Double.toString() для перевода double в String.
#java
Подписывайтесь на канал 👉@coddy_academy
Вы можете использовать Double.toString() для перевода double в String.
class Main {
public static void main(String[] args) throws Exception {
double counter = 5.7;
String counter_string = Double.toString(counter);
System.out.println(counter_string); // Вывод : 5.7
}
}
#java
Подписывайтесь на канал 👉@coddy_academy
👍1
Свойство ok
В функции
#javanoscript
Подписывайтесь на канал 👉@coddy_academy
В функции
Fetch API fetch() свойство ok ответа проверяет, является ли он истинным или ложным. В примере кода свойство .ok будет иметь значение true, если HTTP-запрос выполнен успешно. Свойство .ok будет иметь значение false, если HTTP-запрос не удался.#javanoscript
Подписывайтесь на канал 👉@coddy_academy
👍1