Типы данных и литералы
Все значения в языке относятся к одному из типов данных. Тип данных определяет допустимые значения и операции над этими значениями. В языке уже имеется несколько определённых типов данных. Рассмотрим некоторые из них. Если какое-либо значение прописано прямо в коде, то оно называется литералом.
Тип Number
К этому типу относятся числа. Примеры литералов типа Number:
5
5.7
0.234
100_000_000 // в литерале могут быть нижние подчёркивания,
// они могут использоваться для разделения разрядов
// и не влияют на значение
Числа можно складывать, умножать, вычитать, превращать в строку и т.д.
println (4 + 5) //-> 9 сложение
println (3 * 2) //-> 6 умножение
println (1 / 2) //-> 0.5 деление
println (-1) //-> -1 унарный минус
println (5 ^ 2) //-> 25 возведение в степень
Чтобы преобразовать число в строку нужно воспользоваться функцией Number.toText
:
println (Number.toText 6.4) //-> 6.4
Тип Text
Этот тип необходим для представления в программе строк. Текстовые литералы начинаются с символа двойной кавычки и заканчиваются им же:
println "xxx" //-> xx
Если в текст нужно добавить сам знак кавычки, его нужно написать после символа обратного слеша. Это называется экранированием.
println "this is \" symbol" //-> this is " symbol
В текст также можно вставлять произвольные выражения языка. Результат этих выражений будет в результирующей строке, они должны заключаться в \(
и )
println "1 + 2 = \(1 + 2)" //-> 1 + 2 = 3
Это называется строковой интерполяцией.
Литерал также может быть многострочным
println "First line
Second line"
//-> First line
// Second line
Вы можете расположить его на нескольких строках, а сам перенос экранировать, тогда текст будет восприниматься как однострочный:
println "First line \
Also first line" //-> First line Also first line
Для строк также определён ряд операторов:
println ("x" + "y") //-> xy (сложение)
println (*"xxx") //-> 3 (длина строки)
println ("x" * 4) //-> xxxx (повторение строки)
И ряд функций модуля Text:
println (Text.toUpper "xy") //-> XY (переводит в верхний регистр)
println (Text.reverse "xy") //-> yx (переворачиает строку)
println (Text.parseNumber "5") //-> Some 5 (превращает строку в число)
Тип Boolean
Представляет логические данные. Может иметь значение true или false. Используется для ряда более сложных конструкций, значение этого типа возвращает большинство операторов сравнения:
println (5 = 5) //-> true
println (3 > 7) //-> false
println ("x" = "x") //-> true
println (true = false) //-> false
В тип Boolean может конвертироваться любой другой тип.
Тип List
Тип List является сложным типом, его значение - это список с элементами любого типа.
println [4, 5, true] //-> [4, 5, true]
Вложенные списки также доступны:
println [[0,0], [1,0], [0,1]] //-> [[0, 0], [1, 0], [0, 1]]
Для список определён ряд операторов и функций в модуле List
println ([4, 5, 6] + [7, 8, 9]) //-> [4, 5, 6, 7, 8, 9]
println (*[5, 6, 7]) //-> 3
Last updated
Was this helpful?