kotlin - 当 kotlin 是一种编译语言时,Kotlin notebook 将如何工作?
问题描述
我尝试了 Kotlin 笔记本扩展,我想知道引擎盖下发生了什么。
我使用了带有 python 的笔记本,因为 python 是一种解释性语言,它在笔记本中工作似乎很自然。
我的理解是,在编写 Kotlin 代码之后,我需要在执行它之前编译它(不是吗?)。但是在笔记本中,如果我在一个单元格中创建一个类,我可以在下一个单元格中实例化一个对象,但我不知道这是如何工作的。
编辑:似乎有许多已编译语言的IPYTHON 内核。然而问题仍然是“编译的编程语言如何在交互式 jupyter notebook 环境中工作”?
解决方案
Kotlin 有一种特殊的脚本模式(除了普通的编译模式),我们经常将 Kotlin 脚本命名为后缀为.kts
.
您可以使用命令行 Kotlin 编译器尝试此操作:
- 写
println("hello world")
进去a.kts
- 跑
kotlinc -script a.kts
你会看到hello world
打印在屏幕上。
如果您有 IntelliJ IDEA,请尝试右键单击.kts
文件并选择Run
选项。您将看到命令行输出。
编译的编程语言如何在交互式 jupyter notebook 环境中工作?
这里与“编译”无关。这是 Kotlin 编译器的一个特殊功能(将 kotlin 代码作为脚本运行)。
并非所有语言都有这样的功能。这不是通用的。
推荐阅读
- javascript - 在 Switch 语句中使用 indexOf()
- c++ - 读取逗号分隔的 .txt 文件并放入数组
- wpf - WPF 中 DataTemplate 或 HierarchicalDataTemplate 的 DataType 属性的格式是什么?
- node.js - 如何从 http.get 获取数据
- c# - C# 修改 file.txt 时,将副本保存到存档文件夹
- javascript - 如何在动态加载的按钮中发送新消息?
- python - BeautifulSoup 在某些下载请求中提取 div 对象,但在其他请求中不提取
- go - http.get("https://poe.ninja/data") 返回 "https://poe.ninja" 而不是域的所需路径
- c - 在c中的编译时确定数组中的位置
- arrays - 在 MATLAB 中从非常大的数据集生成直方图的有效方法?