本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtube 频道。另外,想追踪更多相关技术资讯,欢迎到 脸书粉丝专页 按赞追踪喔~
今天要跟大家介绍 Kotlin 语法的内容大纲:
在进入 Kotlin 梦幻语法糖世界里,这里 KT 先提供三种可以练习 Kotlin 基础语法的软件:
Koltin 官方目前提供,免安装任何软件,可以随时随地,直接在线上练习 Kotlin 的基础语法。相当的方便且不受电脑效能配置而影响编译执行速度。
https://www.jetbrains.com/idea/download
IntelliJ IDEA ,目前分为两种版本 Ultimate 和 Community。我们选择下载安装 Community 版本,Community 版本是免费的喔。用这一个版本学习、练习 kotlin 基础语法就相当够用了喔,不用额外花费购买 Ultimate 的版本(一年授权费499元美金,约台币15,000元)。
https://developer.android.com/studio
Android Studio 整体介面与操作是基於 IntelliJ IDEA,两套相当类似,只有少部分差异。Android Studio 为 Google 官方提供开发 Android 应用程序的整合式开发环境 (IDE: Integrated Development Environment)。
目前「口罩地图」专案,是透过 Android Studio 进行开发。各种作业系统 (Windows、Mac、Linux、Chrome) 安装方式,可以参考, 官方影片详细教学介绍:https://developer.android.com/studio/install
fun main() {
println("Hello, world!!!")
}
main 函数,是一切的开始,程序运行起来最初的进入点,一个 Kotlin 档案,只能有一个 main 函数。重复宣告,会被编译器,提示程序冲突,重复宣告语法错误。
我们第一行要学的程序码,即是透过 println 函数语法,在输出资讯区印出小括号内的资料 Hello World 。其中双引号 " " 前、後包覆的文字,会被视字串资料。
Hello, world!!!
所以,如果我们试着改写其中双引号 " " 里面的资料,为"HKT线上教室",则会印出该文字:
println("HKT线上教室")
HKT线上教室
在 kotlin 1.3 之前的版本,在 main 的小括号内,需要定义参数,如:
fun main(args: Array<String>) {
println("Hello, World!")
}
但 args 这个参数往往到最後都没有使用到,所以到了新版 kotlin 1.3 之後版本就不用带任何参数,但之前的版本需要。
val (value,常数): 固定值,不希望事後变动此资料,可以使用此种型态。
var (variable,变数): 变动值,可以随时动态存进去资料值。
宣告一个常数名字为 x 的盒子,并且将整数资料 1,存到 x 这个盒子里面去。
val x = 1
val 只能定义一次资料值,我们刻意去犯错,重复去塞资料到 x 常数值里面去,IntelliJ IDEA 就会很聪明的智慧提示,在第二次定义的 x ,下方画上红色蚯蚓线,滑鼠鼠标,移动到红色蚯蚓线下方, IntelliJ IDEA 就会跑出,错误原因来说明:「val cannot be reassigned」,就是 val 型态不能重复塞值。
若这时我们假装刻意没看到,坚持要执行(Run main.kt),展开左侧 Project 专案面板,右键点击 main.kt 档案,在选单中选择 「Run ‘MainKT’」,执行後的结果也会在资讯视窗中显示错误讯息,此讯息会指出是哪一个档案、哪一行发生错误。
你会发现 IntelliJ IDEA 很聪明,不用执行後才跟你说错误,在写错的当下,就会把有错误的档案与行数用红色蚯蚓线,标明错误。
我们修正,移除重复宣告的错误程序,使用 print 函数语法,列印出 x 常数资料。
fun main(args: Array<String>) {
val x = 1
println(x)
}
这时执行(Run main.kt),我们就可以在输出资讯视窗中,看到列印出 x 盒子里面的资料。
宣告一个变数名字为 y 的盒子,并且将整数资料 1,存到 y 这个盒子里面去。
var y = 1
此时,若我们取出 y 值会得到 1。
var 可以重复塞值进去,我们再将整数资料 2,存到 y 这个盒子里面。
var y = 1
y = 2
println(y)
这时我们取出 y 盒子里面的资料,注意喔! 这时 y 盒子里面的资料不是 1,而是已经被我们第二次存进去的资料给覆盖掉。所以印出 y 值为 2 喔。
注解,是辅助程序开发者,在维护程序时,可以快速了解该行或该区块是在做什麽运算,就好像贴一个便利贴,在程序码中,来提醒未来的自己或他人说明解释程序码的功用。另外当程序被注解掉时,编译器不会把它当程序码去进行编译与执行。
KT 建议程序码要有良好的注解,在未来维护上会发挥很大的效用。当然很多学生反应,自己一定记得,当初写过什麽,为什麽要那样写,但实际上可能一个礼拜左右或是两个礼拜以上,再回来看当初写的程序码,就要花很长一段时间,去研究才能弄懂这段和那段在写什麽,KT 贴心建议,与其当下注解说明解释程序码用途,才不会事後要很多倍的时间去追 code 回忆了解。
Android Studio 常用快速键,可以参考这篇:
https://tw-hkt.blogspot.com/2018/12/kotlin-android-studio.html
定义资料类型,可以明确的宣告资料为何种资料型态:
var a: Int = 1
也可以不宣告任何资料型态,直接存资料到常数或变数当中,让 kotlin 自动去推断资料类型:
var b = 1
若资料已经设定为特定资料型态,若再以其他资料类型存入,将会造成编译或执行上的错误。
字串模板,以 $ 为开头,後接「变量名称」,范例:$name
var name = "HKT"
println("从零开始学Kotlin程序设计,讲师:$name")
从零开始学Kotlin程序设计,讲师:HKT
另外一种,字串模板,以 $ 为开头,後接大括号,在大括号内,呼叫函数後得到的回传值,范例:${sayHello()}
fun main(args: Array<String>) {
println("${sayHello()} 欢迎大家!")
}
fun sayHello(): String {
return "哈罗~"
}
哈罗~ 欢迎大家!
目前,大概知道字串可以透过 「$」 当作字串模板,来串接文字即可。之後会在细讲讨论函数这个部分,
将数字 1 资料,指派存到 a 里面去
var a = 1
//加法
var a = 1 + 1
//减法
var b = 10 - 5
//乘法
var c = 5 * 2
//除法
var d = 10 / 2
//初始化变数值
var a = 0
var b = 0
var c = 0
var d = 0
//a = a + 1 ,可使用复合指派运算符号,简写为:
a += 1
//b = b -1 ,可使用复合指派运算符号,简写为:
b -= 10
//c = c * 5 ,可使用复合指派运算符号,简写为:
c *= 5
//d = d / 2 ,可使用复合指派运算符号,简写为:
d /= 2
var a = 10
var b = 5
//等於 ==
if(a == b) println("a 等於 b") else println("a 不等於 b")
//不等於
if(a != b) println("a 等於 b") else println("a 不等於 b")
//大於
if(a > b) println("a 大於 b")
//小於
if(a < b) println("a 小於 b")
//大於等於
if(a >= b) println("a 大於等於 b")
//小於等於
if(a <= b) println("a 小於等於 b")
var a = false
var b = true
//逻辑非,Not
if (!a) println("a 为 false") else println("a 为 true")
//逻辑且,And
if(a && b) println("a与b条件皆成立") else println("a或b其中一个条件不成立")
//逻辑或,Or
if(a || b) println("a或b其中一个条件成立") else println("a和b条件皆不成立")
HKT 线上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
Android Developers - Keyboard shortcuts
https://developer.android.com/studio/intro/keyboard-shortcuts
Kotlin docs
https://kotlinlang.org/docs/home.html
那今天【iThome 铁人赛】就介绍到这边罗~
顺带一提,KT 线上教室,脸书粉丝团,会不定期发布相关资讯,不想错过最新资讯,不要忘记来按赞,追踪喔!也欢迎大家将这篇文章分享给更多人喔。
我们明天再见罗!!!掰掰~
<<: Day 02 注册 Azure 帐号与套件安装- 免费体验30天
>>: 选择具有 GPU 的 EC2 并完成配置-Day 02
今天来教教 JavaScript 的基础语法:注解、变数、常数、回圈、条件、函式 以及 运算。 目的...
https://github.com/PacktPublishing/Machine-Learni...
什麽是live server? 如果有看我之前的文章就会知道它是一个vscode的插件,可以即时预览...
这边使用的是nodejs(egg) 一张图简介一下 ELK+kafka做什麽用 (用於数据分析,lo...
难道拉屎 也要跟我说!!! 不不讨公司 尽力去做对公司好的事!! 对自己负责! 对自己的 员工要做...