Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Project exclude paths
/.idea
/.gradle/
/build/
local.properties
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,43 @@
# Kotlin-3
Код к занятию Kotlin-3

Внимание! Все этапы презентации лежат в отдельных коммитах по шагам.
Можно выкладывать коммиты один за другим, чтобы идти от простого к сложному.
Подробности в записи и в презентации.

# Домашнее задание


## 1. Функция с обязательными и необязательными позиционными параметрами
Напишите функцию, которая будет принимать:

- два обязательных аргумента типа `Int`
- неограниченное число дополнительных аргументов типа `Int`

Функция должна возвращать сумму первого, второго и дополнительных аргументов.
Если в функцию передано меньше двух аргументов, программа не должна собираться (ошибка компиляции).

## 2. Функция с необязательным параметром и позиционными параметрами
Напишите функцию, которая будет принимать:

- неограниченное количество строк `String`
- необязательный параметр типа `Char`

Функция должна возвращать объединение строк.

- по умолчанию, строки объединяется пробелом
- если передан `Char` параметр, то объединение делается этим символом

## 3. Тестовая функция для пункта №2
Напишите функцию-тест для первого пункта. Проверьте следующие условия для строк `str1` и `str2` и `str3`:

- Если `Char` не передан, ваша функция должна вернуть: `str1 str2 str3`
- Если `Char` задан как `,`, ваша функция должна вернуть: `str1,str2,str3`

## 4. Функция, измеряющая время выполнения другой функции

Напишите функцию, которая бы принимала другую функцию в качестве параметра.
Ваша функция должна запустить функцию, переданную в аргументе, и вернуть время ее выполнения.

Примечание: используйте что-то долгое (например, длинный цикл с печатью) в качестве тестовой функции. Иначе, вы можете
не заметить, сколько времени прошло
19 changes: 19 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.9.10'
}

test {
useJUnitPlatform()
}

group 'ru.otus'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib"
implementation 'org.junit.jupiter:junit-jupiter:5.8.1'
}
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
kotlin.code.style=official
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Mon Oct 09 12:41:49 CEST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
234 changes: 234 additions & 0 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading