Рубрики
Uncategorized

Swift 5 – Основы: константы и переменные

Вступление Всем привет! Некоторое время назад я решил начать изучать Swift с написания постов… С тегом todayilearned, swift, php.

Разработчик 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”