Kotlin环境搭建与基础语法入门

目标:完成开发环境配置,编写第一个Kotlin程序,理解变量、数据类型和基本输出。

1. 环境搭建

步骤1:安装JDK

下载并安装 JDK 17+(Kotlin兼容性最佳版本)。
配置环境变量 JAVA_HOME,并在终端验证:

java -version
javac -version

步骤2:安装IntelliJ IDEA

下载社区版(免费)或旗舰版:IntelliJ IDEA下载
安装时勾选 Kotlin插件(默认已安装)。

步骤3:创建第一个Kotlin项目

打开IntelliJ IDEA,选择 New Project → Kotlin → JVM | IDEA。
输入项目名称(如KotlinFirstDay),点击 Finish。
在src目录下新建Kotlin文件(如Main.kt)。

2.编写第一个“Hello World”程序

示例代码

fun main() {println("Hello, Kotlin!")  // 输出字符串val name = "Alice"         // 定义不可变变量println("My name is $name") // 字符串模板
}

关键点

fun main():Kotlin程序的入口函数。
println():输出内容到控制台。
val:声明不可变变量(类似Java的final)。
字符串模板: 变量名或 变量名或 变量名或{表达式}(如"${name.length} letters")。

3. 变量与数据类型

示例1:变量声明

fun main() {var age = 25          // 可变变量(类型推断为Int)val pi = 3.14159      // 不可变变量(类型推断为Double)val isStudent = true  // 类型推断为Booleanprintln("Age: $age, Pi: $pi, Is student: $isStudent")
}

示例2:显式类型声明

fun main() {val name: String = "Bob"   // 显式声明为String类型val score: Int = 95       // 显式声明为Int类型val rate: Double = 99.9   // 显式声明为Double类型println("Name: $name, Score: $score, Rate: $rate")
}

关键点
var:可变变量,值可重新赋值。
val:不可变变量,初始化后不能修改。
类型推断:Kotlin会根据赋值自动推断类型,但显式声明更清晰。

4. 基础数据类型

示例3:常用数据类型

fun main() {// 整数类型val byteNum: Byte = 127      // 8位val shortNum: Short = 32767   // 16位val intNum: Int = 2_147_483_647 // 32位(下划线可读性分隔)val longNum: Long = 9_223_372_036_854_775_807L // 64位(需加L后缀)// 浮点类型val floatNum: Float = 3.14f   // 32位(需加f后缀)val doubleNum: Double = 3.1415926 // 64位// 字符与布尔val char: Char = 'A'val boolean: Boolean = trueprintln("Byte: $byteNum, Long: $longNum, Char: $char")
}

关键点
整数类型:Byte、Short、Int、Long(后缀L)。
浮点类型:Float(后缀f)、Double。
字符类型:Char(单引号)。
布尔类型:Boolean(true或false)。

5. 实践任务

任务1:编写一个程序,输出你的姓名、年龄和最喜欢的编程语言。
示例输出:

Name: Alice, Age: 25, Favorite language: Kotlin

任务2:定义一个变量存储圆周率(pi),计算并输出半径为5的圆的面积(公式:面积 = pi * r * r)。
示例输出:

Circle area: 78.53975

答案:

fun main() {val pi = 3.14159val radius = 5.0val area = pi * radius * radiusprintln("Circle area: $area")
}

6. 总结

完成Kotlin开发环境搭建。
掌握main()函数、println()输出和字符串模板。
理解var和val的区别,熟悉基本数据类型。
下个目标:学习控制流语句(if-else、when、循环)和条件表达式。

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

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

相关文章

CLion开发Qt桌面程序_git的简单使用_小团体

OS:Windows Qt:6.8.1(6.x) Eg:学生信息管理系统 前言 Qt Creator编写代码不是太方便,使用CLion编写代码或许是个不错的主意,CLion在此处主要是用于后端和测试的开发,界面方面还是…

C语言专题:8.函数指针(Function Pointer)

​ 在 C 语言中,函数也是一种“对象”,它在内存中有地址。因此可以定义指向函数的指针,用于动态调用、回调处理、构建函数表等。 掌握函数指针是理解 C 语言“底层抽象”与“模块化编程”的关键。 一、函数指针的基本概念 ​ 函数指针是一个变…

快速傅里叶变换(FFT)是什么?

快速傅里叶变换(FFT)是什么? 快速傅里叶变换(FFT) 本质上是一种极其高效的算法,用来计算**离散傅里叶变换(DFT)**及其逆变换。它是数字信号处理、科学计算和工程应用中最重要的算法之一。 要理解 FFT&…

EEG分类 - Theta 频带 power

在EEG(脑电图)信号处理的背景下,theta波段功率(Theta Band Power)是一个重要的特征,广泛应用于认知、神经科学和临床监测等领域。接下来,我将详细介绍theta波段功率的定义、特性、计算方法以及在…

苍穹外卖day3--公共字段填充+新增菜品

1.公共字段填充 1.1 问题分析 在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工或者编辑菜品分类时需要设置修改时间、修改人等字段。这些字段属于公共字段,也就是也就是在我们的系统中很多表中都会有这些字段…

每次选择都是成本

概述 我们每个人都在做选择,而且无时无刻不在做选择。 有的人有的选,而有的人却没得选。 因此从侧面来说,有的选反而更是一种幸福。 我们学习的目的就是为了让我们自己在未来能有更好地选择,也可以底气十足地选择不去做什么&a…

AI in CSR Writing: Revolutionizing Clinical Trial Reports

一、AI在CSR撰写中的实际应用 1.1 自动化数据整合与报告生成 1.1.1 数据提取与汇总 AI自动从EDC、实验室系统、安全数据库提取数据,生成统计图表和表格,如人口统计学、疗效终点、安全性事件表,减少人工操作。 1.1.2 动态报告生成 基于预设模板,AI自动填充数据结果,如自动…

《Java反射到底该不该用?性能、灵活性与可维护性三者博弈》

大家好呀!今天我们要聊一个Java中超级强大但也需要谨慎使用的特性——反射机制(Reflection) 🎭。我会用最通俗易懂的方式,带大家彻底搞懂这个"程序界的魔术师"! 一、什么是Java反射?🤔 想象一下…

从Java API调用者到架构思考:我的Elasticsearch认知升级之路

前言:我的Elasticsearch学习历程 作为一名Java开发者,记得第一次使用ES的Java High Level REST Client时,我被它强大的搜索能力所震撼,但也为复杂的集群调优所困扰。经过多个项目的实战积累和系统性学习,我终于建立了对…

高云GW5AT-LV60 FPGA图像处理板

GW5AT-LV60开发板体积小巧,长100mm宽为61.8mm,还没有一部Ipone SE2体积大,该板卡采用了核心板和载板分离的形式,核心板的形式可方便开发者在项目中根据实际需求来开发自己的载板,只需要为核心板提供5V的电源就能满足基…

[XILINX]ZYNQ7010_7020_软件LVDS设计

若该文为原创文章,未经允许不得转载风释雪QQ:627833006WX:Cheng18375816918CSDN博客: 风释雪FPGA知乎:风释雪FPGA 1.版本说明 日期作者版本说明2024xxxx风释雪初始版本 2.概述 ZYNQ 7010/7020 HR/HP Bank LVDS Rx/TX; 3.目标 ZYNQ 7010 LVD…

桌面小屏幕实战课程:DesktopScreen 11 SPI 水墨屏

飞书文档https://x509p6c8to.feishu.cn/docx/doxcnlzpIgj3gosCZufBTCZxlMb SPI说明 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上占用…

SpringCloud Gateway 组件的使用

作者:小凯 沉淀、分享、成长,让自己和他人都能有所收获! 我发现了一个很有意思的缩写单词 gw、wg,都是网关的意思。因为 gw gateway、wg wangguan,所以在各个系统开发中,既有 gw 也有 wg 的存在。而网关…

随机地址生成器 - Cloudflare Workers

分享一个完全开源免费部署在 Cloudflare Workers 上的随机地址生成器,支持全球 24 个国家/地区。 🔗 工具地址: https://address.chat-tempmail.com ✨ 特性 🌍 支持生成 24 个国家/地区的地址📱 响应式设计,完美支持…

CNN不是一个模型?

CNN不是一个模型? 结论: CNN 是模型架构而非具体模型,其定位类似深度学习领域的 「设计框架」,而非 LSTM(具体单元结构)或决策树(具体算法实体)。CNN 的 「具体模型」 需要结合网络…

爱基百客与真迈生物达成战略合作,共推多组学科研服务升级

近日,武汉爱基百客生物科技有限公司(以下简称“爱基百客”)与真迈生物正式签署战略合作协议。此次战略合作将聚焦表观组学、单细胞时空组学等前沿科研领域,联合打造基于自主创新技术的多组学科研服务方案,为科研人员提…

吴恩达:从斯坦福到 Coursera,他的深度学习布道之路

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 吴恩达:从斯坦福到 Coursera,他的深度学习布道之路 在人工智能…

开疆智能CCLinkIE转ModbusTCP网关连接测联无纸记录仪配置案例

本案例是通过CCLinkIE转ModbusTCP网关将记录仪数据传送到三菱PLC,具体操作过程如下。 (1) 无纸记录仪与PT100传感器连接正确后,将无纸记录仪和PC通过网线连接,给无纸记录仪上电,设置无纸记录仪的IP地址及网…

【软考高级系统架构论文】# 论软件设计方法及其应用

论文真题 软件设计 (Software Design,SD) 根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决…

Spring Boot 3.x 项目搭建 (一)

以下是一个基础 Spring Boot 项目的创建指南,整合了官方推荐方式和实用配置,帮助您快速搭建可运行的项目骨架。 🌟 一、项目创建方式 1. 在线工具 Spring Initializr(推荐) 步骤: 访问 Spring Initializr…