Шаблонные строки. Конструкции $ и $ {}. Примеры конструирования шаблонных строк
Содержание
- 1. Шаблонные строки. Особенности использования для одиночных значений. Префикс $
- 2. Пример конвертирования переменных различных типов в шаблонные строки и их использование
- 3. Вычисление значений сложных выражений. Конструкция $ {}. Использование оператора if-else в шаблонной строке
- 4. Пример использования шаблонных строк, которые содержат сложные выражения
- 5. Пример создания шаблонной строки, содержащей оператор if-else для вычисления результата решения квадратного уравнения
- Связанные темы
Поиск на других ресурсах:
1. Шаблонные строки. Особенности использования для одиночных значений. Префикс $
В языке Kotlin существуют различные средства создания строк на основе текущих данных программы. С помощью шаблонов, любая строка может быть построена из значений переменных и результатов выражений.
Шаблон формируется одним из двух способов:
- на основе использования префикса $, который следует перед именем переменной или константы;
- на основе использования конструкции $ {}, которая позволяет вычислять результаты выражений.
Шаблон, взятый в двойные кавычки, образует шаблонную строку. В простейшем случае шаблонная строка, в которой получается значение одной переменной, имеет следующий вид:
"$var_name"
здесь
- var_name – имя переменной (val или var), значение которой подставляется в шаблонную строку.
В шаблонной строке допускается получать значение любого количества переменных.
⇑
2. Пример конвертирования переменных различных типов в шаблонные строки и их использование
В примере демонстрируется конвертирование одиночных переменных различных типов в шаблонные строки.
// Шаблонные строки // Перечисление, определяющее дни недели enum class Days (vl : Int) { Sun(1), Mon(2), Tue(3), Wed(4), Thi(5), Fri(6), Sat(7) } // Константа const val Pi = 3.1415 fun main(args:Array<String>) { // Демонстрация использования шаблонных строк // 1. Сформировать шаблонную строку для целого типа Int val d : Int d = 25 var s : String = "$d" println("s = " + s) // s = 25 // 2. Для значения с плавающей запятой var x : Double = 3.887 s = "$x" println("s = " + s) // s = 3.887 // 3. Для константы Pi s = "$Pi" println("s = " + s) // s = 3.1415 // 4. Вычислить длину окружности радиуса 2.0 // и вывести ее как шаблонную строку val area : Float = Pi.toFloat() * 2.0F println("area = $area") // area = 6.283 // 5. Вывести значение всех переменных за один раз println("$d, $x, $Pi, $area") // 25, 3.887, 3.1415, 6.283 // 6. Использование шаблонных строк для перечислений val days : Days days = Days.Fri println("$days") // Fri }
Результат выполнения программы
s = 25 s = 3.887 s = 3.1415 area = 6.283 25, 3.887, 3.1415, 6.283 Fri
⇑
3. Вычисление значений сложных выражений. Конструкция $ {}. Использование оператора if-else в шаблонной строке
Язык Kotlin имеет средства вычисления результатов выражений внутри шаблонной строки. Для этого используется конструкция, которая имеет следующую общую форму
${expression}
здесь
- expression – некоторое выражение, имеющее смысл с точки зрения синтаксиса языка Kotlin.
Для выражения expression можно сформировать следующие утверждения:
- выражение допускает использование оператора условного перехода if-else;
- выражение допускает вложение конструкций $ {} друг в друга при формировании шаблонной строки;
- выражение не допускает использование других операторов кроме оператора if-else.
Например, следующая шаблонная строка корректна
"${if (a > b) "a>b" else "a<=b"}"
⇑
4. Пример использования шаблонных строк, которые содержат сложные выражения
В примере, на основе введенного радиуса (radius) формируются три шаблонные строки, содержащие результат вычисления:
- длины окружности (переменная sLength);
- площади круга (sArea);
- объема шара (sVolume).
// Шаблонные строки const val Pi = 3.1415 fun main(args:Array<String>) { // Демонстрация использования оператора if-else // в шаблонной строке // 1. Объявить переменные val radius : Double // 2. Ввести радиус print("radius = ") radius = readLine().toString().toDouble() // 3. Сформировать шаблонные строки // Длина окружности val sLength : String = "Circumference = ${2*Pi*radius}" // Площадь круга val sArea : String = "Area = ${Pi*radius*radius}" // Объем шара val sVolume : String = "Volume = ${4.0/3 * Pi*Math.pow(radius,3.0)}" // 4. Вывести сформированные шаблонные строки println(sLength) println(sArea) println(sVolume) }
Результат выполнения программы
radius = 3.5 Circumference = 21.9905 Area = 38.483375 Volume = 179.58908333333332
⇑
5. Пример создания шаблонной строки, содержащей оператор if-else для вычисления результата решения квадратного уравнения
В примере демонстрируется решение квадратного уравнения. По введенным значениям a, b, c вычисляется дискриминант D. На основе дискриминанта D формируется шаблонная строка str, содержащая результат вычисления.
fun main(args:Array<String>) { // Демонстрация использования оператора if-else // в шаблонной строке // 1. Объявить переменные val a : Double val b : Double val c : Double val x1 : Double val x2 : Double val D : Double // 2. Ввод данных print("a = ") a = readLine().toString().toDouble() print("b = ") b = readLine().toString().toDouble() print("c = ") c = readLine().toString().toDouble() // 3. Вычисление дискриминанта D = b*b - 4*a*c // 4. На основании дискриминанта формируется шаблонная строка val str : String str = "${ if (D<0) "The equatin has no roots." else { x1 = (-b - Math.sqrt(D)) / (2*a) x2 = (-b + Math.sqrt(D)) / (2*a) "x1 = $x1; $x2" } }" // 5. Вывести сформированную шаблонную строку println(str) }
При формировании шаблонной строки str, можно использовать вложенные конструкции $ {} по образцу ниже
... // 4. На основании дискриминанта формируется шаблонная строка val str : String str = "${ if (D<0) "The equatin has no roots." else { "x1 = ${(-b - Math.sqrt(D)) / (2*a)}; " + "${(-b + Math.sqrt(D)) / (2*a)}" } }" ...
Результат выполнения программы
a = -8 b = 3 c = 5 x1 = 1.0; -0.625
⇑
Связанные темы
- Базовые типы. Числовые литералы. Числовые константы. Примеры
- Переменные и константы. Ключевые слова var, val, const
⇑