一、Kotlin 开发环境搭建

news2024/11/19 9:25:51

1. Kotlin 官网

https://kotlinlang.org/

2. Kotlin 命令行工具下载

  1. 下载网址: https://github.com/JetBrains/kotlin/releases/tag/v1.3.50

    切换其他版本,改下版本号即可

  2. 下载 kotlin-compiler-1.3.50.zip 文件即可

  3. 解压 kotlin-compiler-1.3.50.zip,得到一个 kotlinc 文件夹,其中:

    ./bin/ 目录下存放一些可执行文件,如 kotlin、kotlinc (相当于 java、javac)
    
    ./lib/ 目录下存放一些依赖的 jar 包文件
    

    在这里插入图片描述

3. IntelliJ IDEA 中创建 Kotlin 工程

IntelliJ IDEA 中集成了 Kotlin 环境,直接创建 kotlin 工程即可。

创建 Kotlin 工程步骤如下:

  1. File -> New -> Project

  2. 左侧面板选择 Kotlin -> 右侧面板选择 JVM|IDEA -> 点击 Next

    在这里插入图片描述

  3. 输入 Project name -> 选择 Project location -> 点击 Finish (其他默认配置即可)

    在这里插入图片描述

创建 Kotlin 工程后,可以看到:

  1. 根目录下的 src 文件夹用来存放源码文件

  2. 根目录下的 .idea/kotlinc.xml 配置文件中指明了该 Kotlin 工程所使用的 kotlin 版本为 1.3

    在这里插入图片描述

Settings 窗口中的 Plugin 面板内搜索 "kotlin" , 可以发现当前的 IntelliJ IDEA 版本中集成的 kotlin 版本是 1.3.61

在这里插入图片描述

3.1 编写 Hello Kotlin

  1. 右键 src 文件夹 -> New -> Package -> 输入包名 (同创建 Java 包名一样)

  2. 右键包名目录 -> New -> Kotlin File/Class -> 选择 File 类型 并输入文件名 "HelloKotlin" -> 在包名目录下创建出一个 HelloKotlin.kt 文件

  3. HelloKotlin.kt 文件中编写如下代码:

    fun main() {
        println("Hello Kotlin")
    }
    
  4. build 工程,然后在运行 HelloKotlin.kt 文件即可输出 “Hello Kotlin” (buildrunJava 一样)

    在这里插入图片描述

3.2 IntelliJ IDEA 中创建基于 KotlinGradle 工程

AndroidJava 项目中我们一般都会使用 Gradle 来构建项目,所以实际项目一般创建的都是基于 KotlinGradle 工程

注意:Gradle 基于 Groovy 语言,但是在学了 Kotlin 语言后,我们还应该知道:Gradle 也可以基于 Kotlin 语言

创建步骤:

  1. File -> New -> Project

  2. 左侧面板选择 Gradle -> 右侧面板勾选 Java 以及 Kotlin/JVM -> 点击 Next

    注意:如果勾选了 “Kotlin DSL build script”, 则表示 Gradle 构建脚本使用 kotlin 语言,而不是使用 Groovy 语言。(不需要勾选)

    在这里插入图片描述

  3. 输入 NameGradle 工程名) -> 选择 Location -> 输入 GroupId -> 点击 Finish

    在这里插入图片描述

3.2.1 gradle.<version>-bin.zipgradle.<version>-all.zip 的区别

在这里插入图片描述

4. AndroidStudio 中的 Kotlin 开发环境

4.1 AndroidStudioIntelliJ IDEA 的版本关系

AndroidStudio 是基于 IntelliJ IDEA 的。如下图,给出了 AS 版本和 IntelliJ IDEA 版本的对应关系:

在这里插入图片描述

4.2 通过 Gradle 配置 Kotlin 的依赖支持

AndroidStudio 3.0 以上版本内置了 Koltin。创建 Android 工程时语言可以直接选择 Koltin

在这里插入图片描述

另外,如果创建 Android 工程时,选择的语言是 Java,那么可以通过 Gradle 配置 使我们的工程支持 Kotlin

  1. Gradle 添加 Koltin 编译插件

    // 在根 Project 的 build.gradle 中配置如下:
    buildscript {
        repositories {
            google()
            jenter()
        }
    
        dependencies {
            classpath 'org.jetbrains.koltin:koltin-gradle-plugin:1.3.50'
        }
    }
    
  2. Gradle 添加 Koltin 标准库依赖

    // 在使用 Koltin 的子 Project 的 build.gradle 中配置如下:
    
    apply plugin: 'koltin-android'
    
    dependencies {
        implementation 'org.jetbrains.koltin:koltin-stdlib:1.3.50'
    }
    

4.3 将 Java 文件转换成 Kotlin 文件

AndroidStudio 中可以将一个 Java 文件转成一个 Kotlin 文件:

选中要转换的 `.java` 文件 -> `Code` -> `Convert Java File to Koltin File`

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

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

相关文章

【智能家居入门之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据&#xff0c;之后会持续发布如下项目&#xff1a;①可以实现微信小程序控制下位机动作&#xff0c;真正意义上的智能家居&#xff1b;②将网络通讯协议换成MQTT协议再实现上述功能&#xff0c;此时的服务器也不再是ONENET&…

回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测(含优化前后预测可视化)

回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测 目录 回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测预测效果基本介绍程序设计参考资料预测效果 <

Cesium.js实现显示点位对应的自定义信息弹窗(数据面板)

零、相关技术选型&#xff1a; Vue2 Vuecli5 Cesium.js 天地图 一、需求说明 在使用2D地图&#xff08;天地图、高德地图等&#xff09;基于官方文档可以实现下面需求&#xff1a; 实现添加点位&#xff0c;并在点位附近显示对应的信息弹窗。 一般信息弹窗的显示方式有两种&am…

Qt线程高级应用

一般我们在用Qt开发时&#xff0c;把耗时操作放在线程中执行&#xff0c;避免卡界面&#xff0c;Qt的线程使用有两种方式&#xff0c;一种是继承QThread&#xff0c;一种是moveToThread的方式&#xff0c;以及QtConcurrent方式 首先我们来看第一种&#xff1a; #ifndef WORKER…

matlab appdesigner系列-仪器仪表3-旋钮

旋钮&#xff0c;同过旋转显示特定的值 示例&#xff1a;模拟收音机调频 操作步骤&#xff1a; 1&#xff09;将旋钮、标签按钮拖拽到画布上&#xff0c;将标签文字修改为&#xff1a;欢迎收听&#xff0c;并将旋钮其数值范围改为90-107 2&#xff09;设置旋钮的回调函数 代…

实现屏蔽 Ctrl + Alt + Del 、Ctrl + Shift + Esc 等热键(一)

前面几篇我们都讲解了很多有关 winlogon 挂钩的事情。拦截系统热键的非驱动方式是比较复杂的。本节就复现《禁止CtrlAltDel、WinL等任意系统热键》一文中的方法四&#xff0c;实现拦截 Ctrl Alt Del 等热键。其实通过 heiheiabcd 给出的方法从 WMsgKMessageHandler 入手并不是…

数字图像处理(实践篇)三十二 OpenCV-Python比较两张图片的差异

目录 一 方案 二 实践 ​通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。 一 方案 ①导入依赖库 import cv2 import…

【项目管理】CMMI-管理性能与度量

管理性能与度量 (Managing Performance and Measurement, MPM)的目的在于开发和维持度量能力来管理开发过程性能&#xff0c;以实现公司业务目标&#xff0c;更直接来说&#xff0c;将管理和改进工作集中在成本、进度表和质量性能上&#xff0c;最大限度地提高业务投资回报。 1…

vscode copilot怎么去掉提示代码(ghost text or incline completion)

原因&#xff1a;最近在刷题&#xff0c;被这个提示烦死了&#xff0c;记录一下怎么关掉&#xff0c;防止将来需要开启找不到了XD. 1.直接ctrlshiftp召唤设置 2.输入preferences: open usr settings找到如图第一个 3.去掉这个方框的勾选 ps直接在extension里disable不行呢 不…

OpenHarmony—仅允许在表达式中使用typeof运算符

规则&#xff1a;arkts-no-type-query 级别&#xff1a;错误 ArkTS仅支持在表达式中使用typeof运算符&#xff0c;不允许使用typeof作为类型。 TypeScript let n1 42; let s1 foo; console.log(typeof n1); // number console.log(typeof s1); // string let n2: typeof …

Arduino Uno R3通过ESP-01S连接网络

一、材料准备 Arduino Uno R3开发板 1 USB串口通信数据线&#xff08;Uno开发板使用&#xff09; 1 ESP8266-01S Wi-Fi模块 1 ESP8266固件烧录下载器&#xff08;烧录固件使用&#xff09; 1 WiFi无线收发转接板&#xff08;适用于ESP-01S、ESP-01&#xff09; 杜邦线…

iOS 面试 Swift基础题

一、Swift 存储属性和计算属性比较&#xff1a; 存储型属性:用于存储一个常量或者变量 计算型属性: 计算性属性不直接存储值,而是用 get / set 来取值 和 赋值,可以操作其他属性的变化. 计算属性可以用于类、结构体和枚举&#xff0c;存储属性只能用于类和结构体。存储属性可…

跟着cherno手搓游戏引擎【13】着色器(shader)

创建着色器类&#xff1a; shader.h:初始化、绑定和解绑方法&#xff1a; #pragma once #include <string> namespace YOTO {class Shader {public:Shader(const std::string& vertexSrc, const std::string& fragmentSrc);~Shader();void Bind()const;void Un…

总线协议:基于RS-485的Modbus协议(1):物理层实现

0 工具准备 Modbus协议规范&#xff08;中文&#xff09; 1 基于RS-485的Modbus协议的物理层实现 Modbus协议的物理层实现可以通过RS-485、RS-232、RS-422来实现&#xff0c;不过通常都是用RS-485作为Modbus协议的物理层实现。有关RS-485、RS-232、RS-422的区别如下&#xff1…

MySQL的SQL MODE

目录 举例&#xff1a; --常见SQL mode --mysql8 sql_mode 官方文档 https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html --查看全局的SQL MODE select global.sql_mode; --查看当前会话的SQL MODE select session.sql_mode; --运行时修改全局的SQL mode set gl…

【数据分享】1929-2023年全球站点的逐年平均气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

ChatGPT与文心一言:智能回复与语言准确性的较量

在当今数字化时代&#xff0c;随着人们对智能化技术的需求不断增长&#xff0c;智能回复工具也成为了日常生活中不可或缺的一部分。ChatGPT和文心一言作为两个备受瞩目的智能回复工具&#xff0c;在智能回复、语言准确性以及知识库丰富度等方面各有卓越之处。 本文将对这两者进…

每日一题——LeetCode1351.统计有序矩阵中的负数

方法一 暴力枚举&#xff1a; var countNegatives function(grid) {let count0for(let arr of grid){for(let num of arr){if(num<0){count}}}return count }; 消耗时间和内存情况&#xff1a; 方法二 二分法&#xff1a; var countNegatives function(grid) {const m …

Node.js的学习1

Node.js简介 浏览器是JavaScript的前端运行环境Node.js是JavaScript的后端运行环境Node.js中无法调用DOM和BOM等浏览器内置API 终端中的快捷键 使用向上箭头&#xff0c;可以快速定位到上一次执行的命令使用tab键&#xff0c;可以快速补全路径使用esc键&#xff0c;可以快速清…

工程对接大模型流式和非流式对话底层原理解析

文章目录 前言一、非流式输出设计二、stream流式输出设计三、手撸一个流式输出项目总结 前言 之前对接过OpenAi大模型的官方API&#xff0c;可以看到它有一个Stream参数&#xff0c;设置成true的时候就是流式的对话输出&#xff0c;现象就是一段一段的往外崩。 官方手册的地址…