Шаблонні рядки. Конструкції $ та ${}. Приклади конструювання шаблонних рядків
Зміст
- 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. На основі дискримінанту формується шаблонний рядок 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
⇑