Kotlin Bootcamp 自学(1):Hello Kotlin
目录
Kotlin Bootcamp 自学(1):Hello Kotlin
Concise, readable code 简介、可读性高的代码
Interoperable with Java 可以和Java配合操作
在使用Kotlin之前:JDK安装与IntelliJ IDEA
使用Kotlin REPL来 print HelloWorld
此系列文章是博主在通过Kotlin官方的Kotlin Bootcamp for Programmers学习时记录的随笔。
博主之前接触过的编程语言主要有Python, C++, PHP,之前也有使用过Java的Springboot架构来编写一些项目内容。最近因为业务需要,需要接触安卓平台的开发,遂学习Kotlin。
该教程是基于IntelliJ IDEA为编译器的Kotlin教程。
Kotlin101:什么是Kotlin?
我们先看一下官方对Kotlin的介绍
"Kotlin is a new, modern programming language created by programmers, for programmers. It's focused on clarity, conciseness, and code safety."
在博主看来,Kotlin更多是基于Java的一种语言,但是在编写风格上可能和Python更像些(指不需要靠分号换行)。如果开发者熟悉Java,那上手Kotlin应该不会困难。
在官方的介绍中,Kotlin具有以下的四个特质:
Robust Code 健壮性(鲁棒性)
1. Kotlin会区分可为空数据类型(nullable datatype)和不可为空的数据类型(non-nullable datatype);在编译时可以帮助发现更多的错误。
2. Kotlin是强类型的语言。在编写Kotlin代码时,数据的类型会从代码中被很好地确定。同时Kotlin支持lambda、协同程序(coroutine)等,能让开发者写尽可能少的代码的同时少写bug。
Mature Platform 成熟的平台
Kotlin在2011年左右出现,并且在2012年开源。在2017年时,已经成为官方支持的搭建安卓APP的语言。在现今版本的IntelliJ IDEA和Android Studio中,都已经包含Kotlin。
Concise, readable code 简介、可读性高的代码
Kotlin的设计立志于消灭重复样板代码以及getter/setter。
作为对比,以下为Java中设计一个名为Aquarium的类所需要的代码:
public class Aquarium {
private int mTemperature;
public Aquarium() { }
public int getTemperature() {
return mTemperature;
}
public void setTemperature(int mTemperature) {
this.mTemperature = mTemperature;
}
@Override
public String toString() {
return "Aquarium{" +
"mTemperature=" + mTemperature +
'}';
}
}
以上的Java代码,在Kotlin中的实现如下:
data class Aquarium (var temperature: Int = 0)
可见,Kotlin省去了大量的流程化的代码,非常注重简介性。
Interoperable with Java 可以和Java配合操作
Kotlin和Java一样在运行前会进行预编译(这里博主其实不是很清楚,如果有错误请指出),可以和Java代码一同使用。开发者可是在用Kotlin时使用自己熟悉的Java Library,也可以在Java的项目中嵌入Kotlin代码。IntelliJ IDEA和Android Studio甚至支持将整个Java项目转化为Kotlin项目。
在使用Kotlin之前:JDK安装与IntelliJ IDEA
安装最新版本JDK
1. 卸载旧版本的JDK
*Windows:控制面板->添加/删除程序
Mac: Uninstalling the JDK
由于博主使用的是Mac系统,Windows的安装流程不太熟悉。详细的可以参考官方文档
2. 下载新版本的JDK
JDK下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html
3. 安装JDK(Mac版本)
和安装其他的从浏览器下载的文件一样,点击安装包然后一路continue
4. 检查JDK版本
在terminal终端中输入:
java -version
javac -version
如果两条命令输出的JDK结果是同一个版本,说明JDK安装成功
**我遇到的问题:
背景提要:之前因为完全不懂JDK,所以在得知要安装JDK的时候乱装了很多版本。其中从Intellij IDEA下载了OpenJDK 17.0.2和16.0.1。当时曾经修改过我的.zsh_profile文件以调整java -version和javac -version,现在看的话估计是配置了一半放弃了。
遇到的问题是 java -version 和 javac -version输出不同。
这里我们想要使用的是JDK1.8。
(base) edward@EdwarddeMacBook-Pro / % java -version
java version "1.8.0_152"
(base) edward@EdwarddeMacBook-Pro / % javac -version
javac 17.0.2
**我解决的方法:
1. 在Mac的terminal中输入:
/usr/libexec/java_home -v 1.8
我们可以看到输出是我们想要的JDK的位置:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2. 因此,用vim或其他文本编辑器打开文件 ~/.zsh_profile,在其中中添加一行:
export JAVA_HOME=`usr/libexec/java_home -v 1.8`
*注:因为terminal shell不同,如果使用的是bash终端请将~/.zsh_profile改为~/.bash_profile,其他shell同理
3. 同时,通过命令
/usr/libexec/java_home -V
我们可以查看到本机上全部的Java JDK版本以及在计算机中对应的位置。
*注:这里的-V是大写,区分于第一步的命令-v
找到OpenJDK的目录然后直接讲OpenJDK17和16的目录移至回收站。
这时候我们再执行javac -version
(base) edward@EdwarddeMacBook-Pro JavaVirtualMachines % javac -version
javac 1.8.0_152
问题解决!
安装IntelliJ IDEA
IntelliJ IDEA是Jetbrains公司的开发IDE。Jetbrains的开发工具如今在业界中使用广泛。比如Python开发用的Pycharm,Web开发用的WebStorm等
IntelliJ IDEA下载链接:
Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains
IntelliJ IDEA有社区版(Community Edition)和终极版(Ultimate Edition)。社区版为免费使用,终极版则有30天的试用期。如果想要完整使用终极版,请支持正版,购买官方License。
HelloKotlin:新建一个Kotlin项目
在安装好IntelliJ IDEA之后,我们就可以着手创建我们的第一个Kotlin 项目了。
由于官方教程使用的IntelliJ IDEA版本疑似为Community Edition,博主使用的是Ultimate Edition,所以界面有所不同。
官方的使用教程如下:
1. 点击Create New Project
2. 点击左侧Kotlin,然后选择Kotlin/JVM
3. 给自己的项目命名为HelloKotlin,点击完成
在使用终极版时,可选的配置选项变多,步骤也相对繁琐。
1. 新建项目,命名。Project Template选择Application即可。Build System可选择Gradle Kotlin或者IntelliJ(这里建议选择IntelliJ模版)。Project JDK选择前面我们配置好的即可(这里使用的是1.8版本)。点击Next。
2. 没什么需要改的,直接Finish
至此,我们的第一个Kotlin项目就建好了。
效果图:
使用Kotlin REPL来 print HelloWorld
Kotlin REPL 是一个可以及时交互的控制台。可以理解成Javascript的console或者是Python的Python console。
在Tool>>Kotlin>>Kotlin REPL中可以打开。
点击后可以看到下方出现了REPL console:
在输入框中输入以下内容,然后按⌘+⏎执行代码(Windows端是Ctrl+ Enter):
fun printHello() {
println("Hello World")
}
printHello()
执行结果如下:
到这里,我们的Kotlin Hello World篇就结束了。从上面代码的执行来看,Kotlin在语法上有很多和Python、Javascript、Java相似的地方。更多的内容会在下面的章节中详细解释。
2022/5/29
Edward