Skip to content
Open

Done #58

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
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 '2.0.21'
}

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