Kotlin学习(菜鸟教程)
class FirstKotlin : AppCompatActivity() {//val从不修改的变量 var 可修改的变量val age = 18var num: Int = 18//变量默认不能为null,可以添加?var name: MutableList<Person>? = ArrayList<Person>()var empty: String? = null//kotlin必须初始化变量的值,如果不初始化就使用lateinit延迟加载lateinit var delayStr: String;override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.kotlin_view)num = 19//if-else 条件表达式,kotlin不包含传统的三元运算符var sex: String = if (num == 18) {"男"} else {"女"}Log.e("LS", "sex---" + sex)//whenvar grade = when {num == 19 -> 100num == 18 -> 99else -> 66}Log.e("LS", "grade---" + grade)//因为name是全局变量,所以存在线程不安全(开2个线程),需要使用安全运算符?//如果是局部变量,,就可以不使用安全运算符了,即使开2个线程也不影响,因为线程内部不能调用局部变量
// if(name!=null){// name.toLowese();
// }if (sex != null) {sex.toLowerCase();}//定义list集合使用MutableListname?.add(Person("ls", "hh"))name?.add(Person("ls", "hh"))//data class的作用是重写了toSting(),但是必须构造方法里面有传参Log.e("LS", "集合---" + name?.get(0)?.toString());Log.e("LS", "表达式添加到函数里面---" + getMethod(40))//匿名函数,该函数的返回类型为:(Sting) -> Intvar department: (String) -> Int = { inputs -> inputs.length }Log.e("LS", "匿名表达式---" + department("Android"))Log.e("LS", "高阶函数---" + job("Doctor", { str -> str.length }))//kotlin可以避免空指针,// 使用?.就相当于加一个判空条件,不会执行当前语句,调用不会报空指针,// 若使用!!.则表示你确认该属性值不为空,当属性值为空,就会抛空指针Log.e("LS", "空指针----" + empty?.toLowerCase())//SAM,即 Single Abstract Method ,就是对于只有单个非默认抽象方法接口 ,对于符合这个条件的接口称之为 SAM,这是Java 8 里的一个概念,//Java 中的SAM在 Kotlin 中可以直接用 Lambda 来表示//OnClickListener 具有单一抽象方法 onClick()tv_content.setOnClickListener{Toast.makeText(this, "我被点击了", Toast.LENGTH_LONG).show()var intent = Intent(this, TestAct::class.java)startActivity(intent)}//伴生对象 companion object 类似于对变量和方法使用 Java 的 static 关键字。//const作用是static,会重写get方法,若是java调用kotlin的参数,可以直接获取,否则就需要使用FirstKotlin.Companion.getTESTTAG()方法FirstKotlin.TAGFirstKotlin.TESTTAG//kotlin和java互调时,为了保证java传过来的值对应kotlin的可以为空(?.) 则java中使用@Nullable定义参数就可以//属性初始化 init//定义匿名内部类btn.setOnClickListener(object:View.OnClickListener{override fun onClick(p0: View?) { }})//intent跳转startActivity(Intent(this@MyCameraActivity,MyCameraActivity::class.java))//定义数组var str = arrayOf(1,2,3)var intStr = intArrayOf(1,2,3)//效率更高}var inits:Stringinit {inits = "123"}object TestClass{const val TAG = "LoginFragment"val TESTTAG = "LoginFragment"}companion object {const val TAG = "LoginFragment"val TESTTAG = "LoginFragment"}fun getMethod(age: Int): String {var name = when (age) {18 -> "少女"40 -> "妇女"else -> "婴儿"}return name}//高阶函数fun job(doctor: String, doctorMethod: (String) -> Int): Int {return doctorMethod(doctor)}class car(val wheel: List<Wheel>) {val wheels = listOf<Wheel>()class Wheel {}}data class Person(val name: String, val sex: String)override fun onDestroy() {super.onDestroy()}}
Kotlin学习(菜鸟教程)相关推荐
- python学习 -- 菜鸟教程+B站视频
人生苦短,我学python.ei,我不学,我玩web,多活两年多活两年,哈哈哈 谈一下专业课的学习,不是不支持看视频入门,但所有内容的学习必须回归到 书和文档的阅读 ! 真心的,越早学习文档越好**& ...
- jQuery学习(菜鸟教程)
1.jquery安装 <head> <script src="jquery-1.10.2.min.js"></script> </head ...
- Jquery学习--菜鸟教程
jQuery 是为事件处理特别设计的,页面对不同访问者的响应叫做事件. 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法. 写法:$("p").click(functi ...
- Jquery 学习-菜鸟教程
jquery效果和元素选择 //元素选择$(this).hide();$("p.test") //隐藏所有class="test"的<p>元素$(& ...
- Java菜鸟教程系列 学习笔记总结 基础篇(1)
基础语法 本博客通过学习菜鸟教程Java专栏,并整理得出的Java基础知识. 命名规范 1.项目名全部小写 2.包名全部小写 3.类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写.如: ...
- python scrapy菜鸟教程_scrapy学习笔记(一)快速入门
安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...
- 菜鸟教程python3-Python数据分析,学习路径拆解及资源推荐
原标题:Python数据分析,学习路径拆解及资源推荐 关于Python数据分析,其实网上能够找到的学习资源很多,主要分为两类: 一类是提供各种资源的推荐,比如书单.教程.以及学习的先后顺序: 另一类是 ...
- python菜鸟教程字典-python教程菜鸟教程学习路线
python教程菜鸟教程学习路线,需要学Python 环境搭建.Python 中文编码.Python 基础语法.Python 变量类型.Python 运算符.Python 条件语句.Python 循环 ...
- 菜鸟教程-css3学习笔记
学习链接是: https://www.runoob.com/css3/css3-tutorial.html ############################################## ...
最新文章
- sql server xp_readerrorlog SQL语句查看错误日志
- https://www.unimelb.edu.au/
- !-- --注释和%-- --%注释的区别
- 网易云api如何调用_分析网易云音乐API的经历
- VCL组件之TStrings
- 搜索推荐项目EFLS开源 | 阿里妈妈联邦学习解决方案详解
- dom4j读取配置文件
- 全球与中国高密度聚乙烯塑料桶市场深度研究分析报告
- 什么是 GC,有什么作用?
- java获取pid_JAVA 取得程序执行的PID(Process ID)
- 日本IIJ公司在福冈机场开通运营新的数据中心
- MIUI10系统完美刷成开发版获取root超级权限的教程
- 第七期 | 网约车司机的“捞偏门”手段:作弊抢单、空跑刷单
- excel组合汇总_Excel汇总20150202
- vue输入查询内容但不查询,切页刷新表格会出现触发查询的不合理情况
- 【Nav2中文网】一、入门
- Win10 RTX30系列卡安装VS2019+Python3.7+Pytorch1.8.0+Detectron2.0.4.0+CUDA111+CUDNN8.0.5过程
- 2020职高计算机录取分数线,四川邮电职校2020单招录取分数线
- 错误:error C1853:Debug\...pch预编译头文件来自编译器版本,或者预编译头C++而在C中使用它
- 苹果无线显示与电视连接电脑连接电脑连接服务器,投屏黑科技!手把手教您,如何将笔记本电脑的画面无线投屏到电视或投影机上显示...