Android Studio上Kotlin的入门(2)

admin2024-04-03  4

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

}

}

Kotlin的基本语法规则


Kotlin每一行代码的结尾是不用加分号的

变量

在Kotlin中定义变量的方式和java区别很大,Kotlin定义变量时,只允许在变量前声明两种关键词:val 和 var

常量与变量都可以没有初始化值,但是在引用前必须初始化

编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。

读者可以看到,Kotlin中Int的首字母是大写的,而Java中int的首字母是小写的。这是因为Kotlin没有使用Java的基本数据类型,而是使用了对象数据类型。在java中,int是关键字,而在Kotlin中,Int是一个类,它有自己的方法和数据结构。所以,我们可以给Int等对象数据类型添加扩展函数,文章后文的Toast简化就是基于此点的。

函数

Kotlin中定义函数的关键字是fun(function的缩写),无论你想定义什么函数,都必须用fun进行声明

紧跟在fun后面的是函数名,函数名后括号里面放的是接收的参数。参数的格式名是“参数名:参数类型

若是有返回值的话,就将返回值类型以冒号隔开,写在函数名括号的后面;若是没有返回值,可以省略不写,或者写关键字为 Unit,类似与java的void

实例:接收两个不同类型参数,且返回值为String的函数

fun functionDemo(parm1 : Int, parm2 : String) : String{

return parm2

}

实例:当一个函数中只有一行代码时,Kotlin允许我们不必编写函数体,可以直接将唯一的一行代码用等号连接,直接写在函数定义的后面

//改写前

fun sum(parm1: Int, parm2: Int): Int {

return a + b

}

//改写后

fun sum(parm1: Int, parm2: Int) = a + b //返回值类似也省略了,由编译器自动推断类型

匿名函数

Kotlin支持lambda表达式。并非每个函数都需要一个名称。某些函数通过输入和输出更直接地进行标识。这些函数称为“匿名函数”。

lambda表达式的写法为:(type1,type*) -> type_return = { }

使用实例:

fun main(args: Array) {

val sumLambda: (Int, Int) -> Int = {x,y -> x+y} //(Int, Int) -> Int = {x,y -> x+y}就是一个匿名函数

println(sumLambda(1,2)) // 输出 3

}

字符串模板

字符串可以包含模板表达式,即可求值的代码片段,并将它的结果连接到字符串里面。

字符串模板表达式可以是 $变量名 ${变量名}

实例:

val a = 10

val s1 = “a = $a” // 结果为 “a = 10”

val s = “abc”

val str = “$s.length is ${s.length}” // 结果为 “abc.length is 3”

a = 2

// 模板中的任意表达式:

val s2 = “${s1.replace(“is”, “was”)}, but now is $a”

//结果为“a was 10 , but now is 2 ”

var name = “张三”

var sex = true

var date = “2021年1月2日”

var time = “11点59分”

var work =“该睡觉了”

val orderInfo = “你好,${name} i f ( s e x ) " c o o l b o y " e l s e " c o o l g i r l " , " + " 现在已经是 {if(sex)"cool boy" else "cool girl" },"+"现在已经是 if(sex)"coolboy"else"coolgirl","+"现在已经是{date}\t t i m e 了 , " + " 你 {time}了,"+"你 time,"+"{cacke}”

//结果为"你好,张三 cool boy,现在已经是2021年1月2日 11点59分了,你该睡觉了"

注释

Kotlin 支持单行(或行末)与多行(块)注释。

Kotlin 中的块注释可以嵌套

Null 安全

在某些语言中,可以声明引用类型变量而不明确提供初始值。在这类情况下,变量通常包含 null 值。默认情况下,Kotlin 变量不能持有 null 值。这意味着以下代码段无效:

// 赋值失败

val languageName: String = null

要使变量持有 null 值,它必须是可为 null 类型。可以在变量类型后面加上 ? 后缀,将变量指定为可为 null,如以下示例所示:

val languageName: String? = null

当使用可以可返回Null的函数时,要注意Null安全,应该先做判断处理

fun printProduct(arg1: String, arg2: String) {

val x = parseInt(arg1)

val y = parseInt(arg2)

// 直接使用 “x * y” 会导致编译错误,因为它们可能为 null

if (x != null && y != null) {

// 在Null检测之后,x 与 y 会自动转换为非空值(non-nullable)

println(x * y)

}

else {

println(“‘ a r g 1 ′ o r ′ arg1' or ' arg1orarg2’ is not a number”)

}

}

类型检测和自动类型转换

我们可以使用 is运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字)。 如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显式转换

示例:

//写法一

fun getStringLength(parm: Any): Int? {

if (parm is String) {

// 做过类型判断以后,"parm"会被系统自动转换为String类型

return parm.length

}

// 这里的parm仍然是Any类型的引用

return 0

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

Android Studio上Kotlin的入门(2),img,第1张

Android Studio上Kotlin的入门(2),img,第2张

Android Studio上Kotlin的入门(2),img,第3张

Android Studio上Kotlin的入门(2),img,第4张

Android Studio上Kotlin的入门(2),第5张

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

Android Studio上Kotlin的入门(2),第6张
总结

现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。

我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。

Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。但是周末花一天时间体验一下它的开发流程,了解一下它的优缺点、能干什么或者不能干什么。这个时间,并不是我们不能接受的。

如果有时间,其实通读一遍 Flutter 的文档,是最全面的一次对 Flutter 的了解过程。但是如果我们只有 8 小时的时间,我希望能关注一些最值得关注的点。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

个新技术在发布之初,花一个月的时间学习它,成本确实过高。但是周末花一天时间体验一下它的开发流程,了解一下它的优缺点、能干什么或者不能干什么。这个时间,并不是我们不能接受的。

如果有时间,其实通读一遍 Flutter 的文档,是最全面的一次对 Flutter 的了解过程。但是如果我们只有 8 小时的时间,我希望能关注一些最值得关注的点。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!