Kotlin 运行代码片段多种方式

目录

场景描述

一、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.mzph.cn/news/859565.shtml

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

相关文章

Java中的StringBuffer和StringBuilder类

在Java编程中,StringBuffer和StringBuilder是两个非常重要的类,用于处理可变字符串。StringBuffer和StringBuilder都继承自AbstractStringBuilder,提供了类似的方法来操作字符串。然而,这两者之间存在一个关键区别:Str…

国内有哪些比较优秀的wordpress主题?

WordPress作为全球最受欢迎的开源内容管理系统之一,拥有众多优质的主题供用户选择。那么国内有哪些比较优秀的wordpress主题呢?下面小编就和大家分享国内功能比较完善比较受欢迎的wordpress主题。 wordpress主题合集:WP主题-办公人导航https:…

软考初级网络管理员_03_硬件单选题

1.CPU是一块超大规模的集成电路,其主要部件有()。 运算器、控制器和系统总线 运算器、寄存器组和内存储器 控制器、存储器和寄存器组 运算器、控制器和寄存器组 2.(请作答此空)是指CPU一次可以处理的二进制的位数,它直接关系到计算机的计算精度、速…

浅析缓存技术

缓存技术的原理 缓存技术通过在内存中存储数据副本来加速数据访问。当应用程序需要数据时,首先检查缓存是否存在数据副本,如果有则直接返回,否则再从原始数据源获取。这种机制大大减少了访问时间,提升了系统的响应速度和整体性能。…

利用Frp实现内网穿透(docker实现)

文章目录 1、WSL子系统配置2、腾讯云服务器安装frps2.1、创建配置文件2.2 、创建frps容器 3、WSL2子系统Centos服务器安装frpc服务3.1、安装docker3.2、创建配置文件3.3 、创建frpc容器 4、WSL2子系统Centos服务器安装nginx服务 环境配置:一台公网服务器&#xff08…

centos7 根目录扩容

1、先检查一下磁盘空间 [rootlocalhost ~]# lsblk 二、使用fdisk创建新分区 [rootlocalhost ~]# fdisk /dev/vdb 1、输入 p ,查看当前分区表; 2、输入 n ,新建一个分区; 3、再输入 p ,选择分区类型为主分区&#x…

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优…

智能化改造助力企业高质量发展

引言 背景介绍 在当今全球经济环境中,变化和不确定性已成为常态。企业面临的竞争压力不断增加,市场竞争日益激烈。新兴市场的崛起、技术进步和消费者需求的快速变化,使得传统的商业模式和生产方式面临巨大挑战。为了在这样的环境中保持竞争力…

摄影约拍管理系统

摘 要 摄影约拍管理系统是一种基于SSM框架的系统,旨在为摄影师和用户提供便捷的约拍服务。本文通过对系统的设计与实现,解决了传统约拍方式中存在的信息不对称、预约流程繁琐等问题。本文介绍了系统的研究背景与意义,分析了国内外发展现状&a…

应届毕业之本科简历制作

因为毕设以及编制岗位面试,最近好久没有更新了,刚好有同学问如何制作简历,我就准备将我自己制作简历的流程分享给各位,到此也算是一个小的结束,拿了工科学位证书毕业去做🐂🐎了。 简历主要包含内…

光泽正在褪去,所以我们又回到了人工智能领域。

光泽正在褪去,所以我们又回到了人工智能领域。 人工智能冬天将被私有化 自从“人工智能”这个流行词在20世纪50年代被创造出来以来,人工智能经历了几次繁荣和萧条周期。 一种新的技术方法看起来很有趣,并取得了一些成果。它被荒谬地炒作并获…

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上&am…

MySQL——数据库级别的外键

仅作了解 方式一:在创建表的时候,增加约束(较复杂) CREATE TABLE IF NOT EXISTS grade(gradeid INT(10) NOT NULL AUTO_INCREMENT COMMENT 年级id,gradename VARCHAR(50) NOT NULL COMMENT 年级名字,PRIMARY KEY(gradeid) )ENGI…

设计模式导读:建造者模式的细腻之处与编程技巧

笔者的碎碎念 其实之前有写过建造者模式的文章,但是感觉其实写的不怎么样,而且自己也理解的一般,但是阅读一些框架源码发现,这些模式真的蛮重要的,很多框架例如OkHttp,Retrofit等等都大量使用了建造者模式…

人脸处理——人脸换脸基础算法探索与应用测试指南

人工智能(AI)彻底改变了我们生活的许多方面,而这项技术的应用之一就是AI换脸工具。这些工具使用先进的计算机视觉技术和深度学习算法,例如生成对抗网络 (GAN),在照片或视频中将一个人的脸与另一个人的脸交换。 1. Dee…

Java简易仓管系统

java import java.sql.*; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; import java.util.*;// 商品类 class Product {private String name;private int quantity;public Product(String name, int quantity) {this.name name;this.quant…

无废话版的TypeScript(TS)教程可以满足日常项目使用

中文官网 在中文网(官网也可以)点击立即试用->在浏览器中运行->在这里可以演示本篇博客内的内容 在这个页面右边点击js就是ts编译后的js内容,也可以点击左上角进行版本设置和一些配置,这个看个人意愿,我本人打开网站直接用了 类型推断 不加类型时,TS会进行类型推断,以…

源代码防泄密如何做?10种方法教你源代码防泄密

企业如何正确做好源代码防泄密工作?推荐10种方法教你源代码防泄密。1. 使用加密技术 强加密算法:使用AES、RSA等强加密算法对源代码进行加密,确保只有授权用户才能解密和访问源代码。 2. 代码混淆 混淆工具:使用ProGuard、Obfusc…

Ubuntu使用cat替代vim编写文件

docker创建容器&#xff0c;进入容器之后无法使用vi&#xff0c;vim&#xff0c;gedit apt update时报错&#xff0c;无法安装指令&#xff0c;sources.list无法编辑 使用cat编辑文件 rootabcd:/# cat >文件名 << EOF > 内容 > EOF编写文件时加上EOF&#xff0c…

六西格玛培训公司:解锁成功之门,让企业与个人共赴“嗨”途

在竞争激烈的21世纪&#xff0c;六西格玛培训公司手握一把神奇的钥匙&#xff0c;帮助企业及个人轻松开启成功的大门。 对企业来说&#xff1a; 产品质量飞跃&#xff1a;不再是偶尔的精品&#xff0c;而是每个产品都如同精雕细琢的艺术品&#xff0c;吸引无数顾客争相购买。…