Найти в Дзене
Классы в языке Carbon
Ключевое слово class в языке Carbon используется для объявления классов. Для классов возможны члены и методы. Ниже приведен пример реализации класса. Пример package ExplorerTest api; class Sum { var a: i32; fn Add[me: Self](var num: i32) -> i32 { var total: i32 = me.a + num; return total; } } fn Main() -> i32 { var p1: Sum = {...
3 года назад
Функции в языке Carbon
Функции в языке Carbon играют ту же роль, что и в C, Php или любом другом функциональном языке. Она используется для разделения функциональности для повторного использования. Например, функция для сложения двух чисел. Введение Структура функции выглядит следующим образом fn имя_функции (параметры) -> возвращаемый_тип {} Здесь: Пример fn multiply (x: i32, y: i32) -> i64 { return x * y; } Здесь мы создали функцию для умножения двух 32-битных целых чисел, в результате чего получается 64-битное целое число. Таким образом, возвращаемый тип - i64. Рассмотрим другой пример: package Sorting api; fn...
3 года назад
Циклы в языке Carbon - while, for, break, continue, return
В языке Carbon мы можем использовать циклы for и while. Внутри цикла для управления потоком можно использовать операторы break и continue. Цикл while Цикл while в Carbon похож на цикл любого другого языка. Он выполняется до тех пор, пока условие цикла не вернет значение true. Пример: var x: i8 = 0; while (x < 3) { Print(x); ++x; } Print("Done!"); // Output: 0 1 2 Done! В этом примере кода мы объявили 8-битную целочисленную переменную x и присвоили ей значение 0. Затем с помощью цикла while мы выполняем цикл до тех пор, пока значение x не станет меньше 3, и печатаем это значение. Вместе с этим мы увеличиваем значение x с помощью оператора инкремента ++...
3 года назад
Сопоставление условий в языке Carbon
В языке Carbon нет оператора switch, но есть match. match - это поток управления, похожий на switch из C и C++ и отражающий аналогичные конструкции в других языках, таких как Swift. Введение match имеет такую структуру: match (expression) { case value => { ... break; } default => { ... break; } } Здесь необходимо понять несколько моментов. Пример fn Bar() -> (i32, (f32, f32)); fn Foo() -> f32 { match (Bar()) { case (42, (x: f32, y: f32)) => { return x - y; } case (p: i32, (x: f32, _: f32)) if (p < 13) => { return p * x; ...
3 года назад
Тернарный оператор в Carbon
Тернарные операторы обычно используются для возврата значения на основе условий в одном операторе. Это позволяет избежать ненужного объявления переменных и расхода памяти. В Carbon вместо обычных троичных обозначений используются выражения if. Введение Выражение if - это выражение вида: if условие then значение1 else значение2 Условие преобразуется в значение bool так же, как и условие оператора if. Значения value1 и value2 неявно преобразуются к их общему типу, который является типом выражения if...
3 года назад
Условия или поток управления в языке Carbon - If, elseif, else
Условия или поток управления в языке Carbon похож на любой другой язык. В нем есть ключевые слова if, elseif и else. Введение if и else обеспечивают условное выполнение утверждений. Оператор if состоит из: Пример if (5 > 6) { Console.Print("5 is greater than 6"); } else if (5 == 6) { Console.Print("5 is equals to 6"); } else { Console...
3 года назад
Операторы в языке Carbon
Арифметические Поддерживаются следующие арифметические операторы: Как знаковые, так и без знаковые целые числа поддерживают все арифметические операции. Хотя деление на ноль не определено. Числа с плавающей запятой поддерживают все арифметические операции, кроме модуляции. Пример: var a: i32 = 5; var b: i32 = 3; // -5 var negation: i32 = -a; // 8 var sum: i32 = a + b; // 2 var difference: i32 = a - b; // 15 var product: i32 = a * b; // 1 var quotient: i32 = a / b; // 2 var remainder: i32 = a % b; Побитовый и битовый сдвиг Поддерживаемые операторы побитового и битового сдвига следующие: Пример:...
3 года назад
Указатели в языке Carbon
Указатели в языке Carbon аналогичны языку C++. Тип указателей на значения типа P записывается как P*. Указатели Carbon не поддерживают арифметику указателей. Какие операции поддерживаются указателями в Carbon? Указатели Carbon поддерживают разыменование и адресацию. Примечание: В Carbon не существует нулевых указателей. Для представления указателя, который может не ссылаться на действительный объект, используйте тип Optional(P*)...
3 года назад
Struct в языке Carbon - составные типы
Структура в языке Carbon - это составной тип, доступ к членам которого осуществляется по имени, а не по их позициям. Они также известны как структурные классы данных, типы struct или struct. Свойства структуры Несколько свойств структуры языка Carbon - это Где можно использовать тип Struct? Структурный тип может быть использован в качестве Пример var coordinates: {.x: i32, .y: i32} = {.y = 2, ...
3 года назад
Кортежи в языке Carbon - составные типы
Кортеж в языке Carbon - это набор значений фиксированного размера, которые могут иметь различные типы, где каждое значение идентифицируется по его позиции в кортеже. Примеры кода Объявление переменной типа кортеж: var i: (i32, i32) = (15, 16); Здесь мы объявили i как кортеж из двух 32-битных целых чисел. Объявление переменной типа кортеж с другим типом значения: var i: (i32, f32) = (15, 16.0); Кортеж может иметь различные типы значений. В приведенном выше примере мы определили кортеж из двух значений - 32-битного целого и 32-битного float. Объявление переменной значения кортежа выражений: var i: (i32, i32) = (3 * 5, 4 * 4); Здесь (3*5, 4*4) называется кортежем выражений...
3 года назад
Язык Carbon - примитивные типы Bool, Int, Float, String
В языке Carbon существует 4 примитивных типа данных - Bool, Int, Float и String. Bool Как и в других языках, bool представляет булеву функцию. Его значениями являются True и False. Он используется в условиях и циклах. Пример: var i: Bool = true; Int Знаковое целое число можно определить с помощью Carbon.Int(N), где N - ширина бита. Для удобства Carbon предоставляет: В то время как беззнаковое целое число можно определить с помощью Carbon.UInt(N). Удобные обозначения: Целочисленные литералы могут быть представлены в десятичном, шестнадцатеричном и двоичном виде. 0x и 0b должны быть написаны строчными буквами...
3 года назад
Как определить переменные в языке Carbon?
Чтобы определить переменные в языке carbon, используйте следующий синтаксис: var identifier: < expression | auto > [ = value ]; Пример: var x: i32 = 42; Давайте разберемся в этом примере Мы также можем написать этот код, используя auto: var x: auto = 42; auto приводит к постоянному значению IntLiteral(42)...
3 года назад