Kotlin 运行代码片段多种方式

news2024/11/19 7:42:29

目录

场景描述

一、Scratch files and worksheets in the IDE

1、Scratch files(草稿文件)

特点:

Scratch files文件创建步骤:

功能解释:

Scratch Buffer笔记文件:

2、Worksheets(工单)

1)、创建方式不同。

2)、文件存储位置不同。

3、REPL

1)、Scratch Files支持REPL方式;

2)、WorkSheets支持REPL方式;

3)、通过IDE菜单栏打开;

二、Kotlin Playground in the browser

三、ki shell in the command line


场景描述

你是否有这样的需求?

requirement:有一段代码或者一个功能方法,没有100%把握是否OK,想写个main函数测试一下。

但是 IDEA 开发工具已经打开了其他项目工程,不方便写测试代码。或者不想打开 IDEA 项目工程,就只想简单的运行我的测试代码。有没有简单&快捷的方法呢?

answer。Kotlin为我们提供了如下三种场景的多种方式。

一、Scratch files and worksheets in the IDE

老文档:https://legacy.kotlincn.net/docs/tutorials/quick-run.html

新文档:https://www.jetbrains.com/help/idea/kotlin-repl.html

这个场景是依赖 IDEA 的,使用 IntelliJ IDEAAndroid Studio 都可以。

这个场景有三种具体的方式:

1、Scratch files(草稿文件)

Scratch files(草稿文件)方式,即是新建一个临时的草稿文件。

特点

1)、你可以在其中编写任意的Kotlin代码(如果你选择的是Kotlin语言类型的话),编写的所有内容最后会被当做main函数的函数体被执行。

2)、Scratch files文件支持语法高亮、代码补全、表达式计算、debug调试等完整的功能。

3)、Scratch files文件创建时,需要使用IDE(IntelliJ IDEA 或 Android Studio 都可以)打开任意一个项目,然后借助项目的IDE窗口,在左侧Projects View视图窗口右键单击,在弹出的菜单中选择 Scratch files 选项创建草稿文件。

4)、Scratch files文件存储的位置是:

Windows 平台:C:\Users\你的账号名称\AppData\Roaming\JetBrains\IdeaIC2024.1\scratches

Mac和Linux未测试过。想查看的话,可以右键单击scratch.kts文件,选择Open In -> Explorer 打开文件夹查看具体位置。

5)、Scratch files无内容关闭时,会自动删除文件。即当你清空Scratch files文件的内容后,再关闭文件。此时IDE会自动帮助你删除这个空的Scratch files文件。

*老版本的Kotlin,对Scratch files文件个数有限制(最多6个文件,再创建会覆盖scratch_1.kts)。测试了新版本创建10个文件都没问题。

Scratch files文件创建步骤

第一步:在项目任意位置右键单击,打开菜单New -> Scratch File。

第二步:选择Scratch Files 后,会弹出语言选择窗口。根据你的需要,选择Kotlin、Java或者其他类型的语言都可以,根据你自己的需要。

第三步:语言类型选择好后,就会自动创建好Scratch Files 文件,并且打开。

功能解释:

1)、标记的第一块区域,Scratch Files 文件创建的位置。与具体的项目(如:Test_0623)无关,就算你关闭/删除了Test_0623这个项目也不会影响到Scratch Files文件。当前你创建的Scratch Files文件依旧会在Scratches and Consoles目录树中。

根据官方解释,Scratches and Consoles目录中还可以存放sql相关的测试文件,如果你安装了databases 数据库相关的插件后。

2)、标记的第二块区域,是Scratch Files文件的编辑区域,你可以在里面写任意代码。你所编写的任意内容会被包裹在main函数中最后被执行,即Scratch Files文件内容被当做main函数的函数体。

3)、标记的第三块区域,是Scratch Files文件内容执行的结果显示区域。

4)、代码编写好后,你可以点击图中的4(运行箭头按钮)执行程序。

5)、如果你想删除右边的执行结果,可以点击5(垃圾桶按钮)清空上一次的执行结果。

6)、如果你勾选了Interative mode选项,则会在你停止输入代码时,立即自动执行当前输入的所有程序,并在右侧打印执行结果。否则的话,需要你手动点击4(运行箭头按钮)执行程序。

7)、REPL模式表示,程序可以循环利用。上一步执行的结果会被存入res*格式的变量中,在下一行代码中可以使用res*变量参与运算。后面的篇幅中会讲到的。

8)、如果你的代码中需要用到某个 module中的类,或者你需要依赖某个第三方库时,你可以把需要依赖的库或者类文件放入某个module中,然后修改当前Scratch Files文件顶部的Use classpath of module选项,选中被依赖的目标module,即可在当前Scratch Files 文件中使用第三方库或类文件了。如果你选择了module后,上边还会多出一个复选框Make module before Run,聪明的你一眼就能看出什么意思。

Scratch Buffer笔记文件:

发现还有个New Scratch Buffer功能,即可以在Scratch files文件同目录下,创建普通的文本文件,暂时缓存有用但是不方便运行的代码,就像是普通的记事本工具。

New Scratch Buffer创建方式:在IDE内双击Shift打开全局搜索窗口,然后输入buffer,结果列表中的第一个就是。

2、Worksheets(工单)

Worksheets(工单)与Scratch files相比,功能几乎一样,略有不同。

不同点如下:

1)、创建方式不同。

第一步:选择你想要存放Worksheets文件的目录位置,然后右键单击打开选择菜单,选择New -> Kotlin Class/File。

第二步:在打开的Kotlin内容选择菜单中,选择Kotlin worksheet选项,并输入文件名,回车确认。(新/老版本文档中描述的创建步骤有差异)。

第三步:文件创建好后,如下图:

第四步:此时报红,缺少 runtime 环境。写点代码,鼠标放上去按照报错提示操作。

第五步:在弹出的对话框中,点击OK即可。

2)、文件存储位置不同。

正如上面截图所示,创建的文件 TestSheet.ws.kts 是在项目内的,而非全局公共区域。

这样有个好处是,你可以创建这样的文件作为演示或者教学使用的案例文档,与项目具体的功能块存放在一起。

3、REPL

REPL中文全称:读取-求值-输出-循环。

英文全称:Read-Eval-Print-Loop。

官方解释:

Kotlin REPL allows you to execute code on the fly without having to create files or configure a runtime environment for it. Also, it accepts simplified syntax so that it is possible to execute code with less ceremony.

翻译:

Kotlin REPL允许您动态执行代码,而不必为其创建文件或配置运行时环境。此外,它接受简化的语法,因此可以用更少的套路来执行代码。

通过REPL全称和解释,还是很难理解REPL到底是啥和如何使用。还好我看过官方文档的完整教程。通俗易懂的解释是:REPL方式拥有Scratch Files/WorkSheets方式全部的功能。但还有一个NB的功能,REPL为每一行表达式计算后的结果定义了变量,命名格式以res0开始(如果有第二个、第三个变量,则会命名为res1和res2)。然后你在写后面代码时,是可以引用前面的res*变量的,即计算结果循环利用。

例如:

REPL打开方式:

1)、Scratch Files支持REPL方式;
2)、WorkSheets支持REPL方式;
3)、通过IDE菜单栏打开;

在IDE菜单栏选择 Tools -> Kotlin -> Kotlin REPL(Experimental)

按照上面的步骤操作后,就会在IDE的Run窗口打开命令行窗口:

二、Kotlin Playground in the browser

这种方式是打开一个浏览器网址,在浏览器上完成代码编写和运行。网址是 Kotlin Playground: Edit, Run, Share Kotlin Code Online。

这种方式优点:

1)、你可以选择kotlin的编译版本;

2)、你可以在线分享代码链接Copy Link;

3)、你可以嵌入代码窗口到别的网页中Share code online;

更新的信息,请自己去探索吧,这儿就不说了。

三、ki shell in the command line

ki shell:全称是 Kotlin interactive shell。kotlin交互命令行,是一套在命令行中运行kotlin的工具集,支持的平台有Linux、macOS和Windows。

使用这种方式,需要安装koltin的命令行编译环境,下载地址:https://github.com/Kotlin/kotlin-interactive-shell
下载后解压到某个目录,然后运行 bin\ki.bat 文件(Windows平台)打开命令行窗口,即可开始快乐的写代码了。

这种方式提供了很多高级的功能:

1)、代码自动补全和语法高亮;

2)、类型检查;

3)、外部关系依赖;

4)、代码段粘贴模式;

5)、脚本支持;

更多的功能和用法,请自己去探索吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1856719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于堆叠长短期记忆网络 Stacked LSTM 预测A股股票价格走势

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

思看科技冲刺上市疑云:募资用途遭强烈质疑,IPO前突击分红

近日,思看科技(杭州)股份有限公司(下称“思看科技”)已更新提交2023年最新财务资料,重启科创板IPO进程。贝多财经了解到,思看科技的上市申请于2023年6月获上交所受理,目前已进入问询…

简鹿文件批量重命名:一款文件批量改名高手都在用的工具

作为 IT 行业的搬砖民工,互联网的数据量爆炸性增长,文件管理成为了一项日益重要的任务。"简鹿文件批量重命名"应运而生,旨在为用户提供一个高效、灵活的解决方案,以应对繁琐的文件命名、排序、创建及属性修改等挑战。 这…

足底筋膜炎吃什么药最管用

足底筋膜炎在使用药物后未见明显改善,但通过使用“古顺、敷堂、筋膜”贴后病情得到了缓解。按疗程使用自愈了,这款筋膜贴通过其药物成分渗透到组织中,从根本上消除炎症,从而快速缓解症状,足底筋膜炎得到了明显的改善。…

【思科】IPv6 过渡技术 - 6to4隧道

【思科】IPv6 过渡技术 - 6to4隧道 实验要求实现思路6 to 4 特点注意点IPv4 转 IPv6 格式小技巧 配置R1基础配置OSPFv3 局域网可达 R2基础配置局域网环境(OSPFv3):IPv6 网络6 to 4 隧道 R3R4基础配置局域网环境(OSPFv3):IPv6 网络6 to 4 隧道 R5基础配置…

Apifox 快速入门教程

访问示例项目​ 可访问Apifox官网,下载并打开 Apifox 后,你将会看到由系统自动创建的“示例团队”,其中内含一个“示例项目”。 项目中自动生成了与宠物商店有关的数条接口。 手动新建接口​ 新建接口是开发者们最常用的功能之一。Apifox 能…

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用 判断员工是否有权限访问,首先得知道现在操作的人是谁,所以必须先实现登录功能 2 登录流程 ① 提供登录页面,可输入用户名与密码信息,并添加执行登录的按钮。(登录页面不能被拦截)…

微服务、多租户、单点登录、国产化形成的开源Java框架!

一、项目简介 JVS是软开企服构建的一站式数字化的开源框架,支持对接多种账户体系,支持多租户、支持Auth2、统一登录、单点登录等,支持原生开发、低代码/零代码开发应用。 二、框架核心功能 控制台(首页):采用配置化的方式 用户…

C语言从入门到进阶(15万字总结)

前言: 《C语言从入门到进阶》这本书可是作者呕心沥血之作,建议零售价1元,当然这里开个玩笑。 本篇博客可是作者之前写的所有C语言笔记博客的集结,本篇博客不止有知识点,还有一部分代码练习。 有人可能会问&#xff…

HarmonyOS Next 系列之可移动悬浮按钮实现(六)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…

Huffman树——AcWing 148. 合并果子

目录 Huffman树 定义 运用情况 注意事项 解题思路 AcWing 148. 合并果子 题目描述 运行代码 代码思路 其它代码 代码思路 Huffman树 定义 它是一种最优二叉树。通过构建带权路径长度最小的二叉树,经常用于数据压缩等领域。 运用情况 在数据压缩中&a…

C语言 while循环1

在C语言里有3种循环:while循环 do while 循环 for循环 while语句 //while语法结构 while(表达式)循环语句; 比如在屏幕上打印1-10 在while循环中 break用于永久的终止循环 在while循环中,continue的作用是跳过本次循环 …

MySQL的综合运用

MySQL版的葵花宝典,欲练此功,挥刀自。。。呃,,,说错了,是先创建两个表,分别是location表和store_info表 示例表为location表和store_info表,如下图所示: 操作一&#xf…

关于小蛋の编程和小蛋编程为同一作者的说明

小蛋の编程和小蛋编程的作品为同一人制作,因前者为父母的手机号进行注册,现用本人手机号注册了新账号小蛋编程,后续文章将在新账号小蛋编程上进行刊登,同时在小蛋编程上对原账号文章进行转载。此账号不再发布帖子,请大…

算法常见手写代码

1.NMS def py_cpu_nms(dets, thresh):"""Pure Python NMS baseline."""#x1、y1、x2、y2、以及score赋值x1 dets[:, 0]y1 dets[:, 1]x2 dets[:, 2]y2 dets[:, 3]scores dets[:, 4]#每一个检测框的面积areas (x2 - x1 1) * (y2 - y1 1)#按…

运维iptables与firewalld详解

iptables与firewalld 一、iptables 1.1 iptables简介 iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向,实现网络安全、网络地址转换(NAT)和端口转发等功能。 具体来说,…

如何解决app广告填充率低、广告填充异常,提升广告变现收益?

APP广告变现有助于开发者获得持续的收益来源,由于广告链路的封闭性和复杂化,一旦出现请求配置参数错误、返回广告源信息缺失、素材被拦截等异常,大部分开发者很难及时查清异常情况,导致广告填充率不理想,甚至填充率常常…

Spire.PDF for .NET【文档操作】演示:设置 PDF 文档的 XMP 元数据

XMP 是一种文件标签技术,可让您在内容创建过程中将元数据嵌入文件本身。借助支持 XMP 的应用程序,您的工作组可以以团队以及软件应用程序、硬件设备甚至文件格式易于理解的格式捕获有关项目的有意义的信息(例如标题和说明、可搜索的关键字以及…

“开源AI”到底是什么意思

开源与专有软件之间的斗争早已为人所熟知。然而,长期以来弥漫在软件圈的紧张关系已经渗透到了人工智能领域,部分原因在于没有人能在AI背景下就“开源”的真正含义达成一致。 相关阅读:GPT-4o通过整合文本、音频和视觉实现人性化的AI交互&…

上海舆情分析软件的功能和对企业的意义

随着互联网的飞速发展,人们参与讨论、发声的途径与评率也越来越多,在为自己发声的同时,公众舆论也成为企业获取民意,改进发展的重要参考。 上海 舆情分析软件的开发,为企业获取舆论,调查研究提供了便捷化的…