Разработчик PHP изучает Swift (серия из 2 частей)
Вступление
Привет всем!
Некоторое время назад я решил начать изучать Swift, написав об этом посты. Итак, это первый пост…
Я не пытаюсь писать “учебные пособия”, это неправда. Эти посты – всего лишь мои мысли на электронной бумаге для учебных целей. Хотя я надеюсь, что кто-то сочтет их полезными.
Константы и переменные
Ключевые слова: let и var
Наконец-то я увидел четкие границы между пусть и var ключевые слова… Нет, не в JS, а в Swift!
let pi = 3.14 var description = "Pi"
Ключевое слово let используется для определения константы. Ключевое слово var используется для определения переменной.
age = 27
Если вы не укажете ключевое слово, как в приведенном выше примере, вы получите сообщение об ошибке – Использование неразрешенного идентификатора "возраст" .
Вы не указываете var ключевое слово только в том случае, если вы переопределяете существующую переменную.
Вы можете определить несколько переменных в одной строке:
var name = "George", age = 27, position = "Software Engineer"
Это верно и для констант:
let pi = 3.14, e = 2.718, phi = 1.618
Вы можете переопределять переменные в Swift, но вы не можете переопределять константы.
var description = "Pi" description = "Ratio of a circle's circumference to its diameter" print(description)
Таким образом, результатом будет “Отношение длины окружности к ее диаметру”, поскольку переменная описание переопределен.
let pi = 3.14 pi = 3.1415
Результатом является ошибка – Невозможно присвоить значение: 'pi' - это константа 'let' .
Как насчет повторного объявления константы?
let pi = 3.14 let pi = 3.1415
Результатом является еще одна ошибка – Недопустимое повторное объявление 'pi' .
Хотя мы тоже не можем повторно объявлять переменные!
var name = "John" var name = "Bob"
Получение того же сообщения об ошибке – Неверное повторное объявление "имя" .
Итак… мы не можем переопределить или повторно объявить какую-либо определенную нами константу или переменную. Мне это нравится.
Аннотации типов
Swift позволяет предоставлять аннотации типов для объявленных переменных и констант. Захватывающе!
Мне нравятся аннотации типов, потому что они улучшают читаемость кода.
var message: String message = "Swift is cool." let pi: Double pi = 3.14
В одной строке можно определить несколько переменных одного и того же типа:
var firstName, lastName, country: String let pi, e, phi: Double
Давайте попробуем нарушить аннотацию типа, присвоив переменной message логическое значение true .
var message: String message = true
Получил ожидаемую ошибку! Невозможно присвоить значение типа 'Bool' типу 'Строка' .
Внимание! Ваши переменные всегда имеют тип, даже если у вас нет аннотаций типов. Давайте рассмотрим еще один пример ошибки.
var myString = "some string" myString = 777 print(myString)
Угадайте, в чем ошибка? Невозможно присвоить значение типа 'Int' типу 'Строка' .
PHP
На данный момент PHP – мой главный инструмент, и все, что я изучаю, я сравниваю с PHP…
В PHP 7 у нас есть аннотации типов для функций, методов и свойств классов.
В любом случае, мне нравятся аннотации типов в Swift больше, чем в PHP, и для этого есть разные причины:
- Вы не можете определить типизированную переменную вне класса.
- Вам нужно вызвать
объявить(strict_types=1);в верхней части скрипта, чтобы иметь возможность определять типы для аргументов функции вне класса. - Если ваш аргумент ожидает
int, затем вы должны передать целое число… но вы все равно можете переопределить эту переменную и присвоить значение другого типа, напримерстрока, точно так же, как в примере ниже.
class Foo
{
public function bar(int $number)
{
$number = 'Oops! I am not a number anymore.';
return $number;
}
}
$foo = new Foo();
echo $foo->bar(10);
// Output: Oops! I am not a number anymore.
Хотя в данном конкретном примере возвращаемый тип может быть спасителем!
public function bar(int $number): int;
В этом случае, даже если нам разрешено изменять тип переменной, нам не разрешается возвращать ее, если она нецелая.
Концовка
Хорошо… Мне понравилось!
Разработчик PHP изучает Swift (серия из 2 частей)
Оригинал: “https://dev.to/dragonfly/swift-5-basics-constants-and-variables-4mjf”