Участник:Alexsmail/Программирование 2020/новый черновик: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
→‎REPL: обновление
Строка 201:
И начинаем сначала (loop).
 
Для того, чтобы открыть интерактивную командную оболочку (interactive shell), иначе называемую REPL-средой, мы запускаем компилятор Котлина без параметров. Там, мы можем писать любой корректный Kotlin код и видеть результаты.
'''TODO:'''
 
Именно получение быстрой обратной связи делает REPL-среду очень удобной для начала изучение нового языка.
 
<syntaxhighlight lang="bash" line>
C:\dev\kotlin>kotlinc
Welcome to Kotlin version 1.2.0 (JRE 1.8.0)
Type :help for help, :quit for quit
>>> "Hello World!"
Hello World!
>>> println("Hello World!")
Hello World!
>>> 2+2
4
</syntaxhighlight>
 
'''Замечание:''' Номера строк приведены тут исключительно для удобства и не является частью ввода-вывода.
 
Возможно выполнять код с сохраненных файлов. Для этого существует специальная команда :load
 
Так, если вы запустили interactive shell с той же директории, где вы сохранили HelloWorld.kt вы можете загрузить и запустить её следующим образом:
 
<syntaxhighlight lang="bash" line start=10>
>>> :load HelloWorld.kt
>>> main(emptyArray())
Hello, World!
</syntaxhighlight>
 
'''Замечание:''' Вы можете использовать REPL для разработки или отладки программы. В частности, если у вас будут проблемы с компиляцией вы можете посмотреть в чём проблема тут.
 
Ниже приведены простые выражения, которые дают, на первых взгляд, странные результаты. Мы разберём все эти случаи подробно в следующей главе.
 
<syntaxhighlight lang="bash" line start=13>
>>> 2+2
4
>>> 0.3+0.6
0.8999999999999999
>>> 7.0/2
3.5
>>> 7/2
3
>>> 7%2
1
>>> 1/0
java.lang.ArithmeticException: / by zero
>>> 1.0/0
Infinity
>>> 0/0
java.lang.ArithmeticException: / by zero
>>> 0.0/0
NaN
>>> Math.sqrt(4)
error: the integer literal does not conform to the expected type Double
Math.sqrt(4)
>>> Math.sqrt(4.0)
2.0
>>> Math.pow(Math.sqrt(4.0), 2.0)
4.0
>>> Math.pow(Math.sqrt(Math.sqrt(Math.sqrt(Math.sqrt(Math.sqrt(Math.sqrt(Math.sqrt(Math.sqrt(4.0)))))))), 256.0)
3.999999999999903
</syntaxhighlight>
 
=== Компиляция и запуск ===