Kotlin 随笔小计
最近准备学Kotlin
现在Kotlin也能支持IOS开发了,准备后面买个Mac也能进行IOS开发
当然目标还是看着能不能把一些小的Android项目重构下
也算是定个目标吧,由于沉迷吃鸡,日志都没怎么写了%>_<%
先弄明白
- 变量,常量,等
- 函数
- 类
- 数据结构(如果有)
- 关键字或者运算符,Kotlin中特有的关键字
变量,常量:
val a:int = 10
我感觉:val 变量关键字 + 变量名 + :(继承符号吧) + 变量类型关键 + = 赋值
对于数值比较大的数字,可以用 _ 隔开,以方便使用
函数 :
控制流,控制语句;
if ,when,for,while语句;
for可以循环遍历任何提供了迭代器的对象;
关键字:? 问号表示可空值
is 运算符检测一个表达式是否某类型的一个实例。判断某个变量是否是某个类型。
in 一般是判断某实例是否包含在某个集合或数组内;准确的是 使用 in 运算符来检测某个数字是否在指定区间内:
.. 两个点表示从左边的角标到右边的角标的范围
. 一个点有点像C++还是表示在 使用类中的方法或者引用某个常量
fun 函数表示
val 变量声明
$ 字符串的模板 关键字 字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成。如 s 是一个数组 然后$s.length 打印出来就是 s.length
,然而${s.length}则 打印出来就是s的长度,即他需要由花括号括起来。
类 :类的关键字 class
field 类中属性访问器的关键字,在类初始化的时候使用,但是这个get() set()函数可以不用写出来
constructor 构造函数 关键字声明
inner 嵌套内部类关键字,使用方法 inner class Person{}
open 类可以继承,默认类是final的,也就是说你必须在类前面写了open 才能继承这个类
: 继承关键字,有点像C++的继承,不是有点像,好像用的关键符号就是一样的;
函数最后面返回值也用这个符号以告诉函数这后面是返回值
:: 通俗点讲就是把一个方法当参数,传递到另一个方法中使用,就是引用一个方法。
Kotlin中的静态方法以及匿名内部类用法
companion ,object 这两个要连起来一起说,因为经常一起使用,kotlin里面没有匿名内部类,而且companion只有这一个用法
如下是Kotlin官方文档的用法
class MyClass {
companion object Factory {
fun create(): MyClass = MyClass()
}
}
// 使用
var instance = MyClass.create()
// 也可以使用下面的方法来调用
// 由于Factory定义后不可修改,故使用val变量来存放
val factory = MyClass.Factory
var instance = factory.create()
下面再上一段java转的kotlin方法看一下,方便比较下用法以及变化
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
context = this
MainActivity.startAcitivityForResult(this)
}
companion object {
private var context: Context? = null
fun getText() {
Toast.makeText(context, "ppppp", Toast.LENGTH_SHORT).show()
}
fun setTest() {
val builder = AlertDialog.Builder(context)
builder.setTitle("PPP")
builder.setMessage("qianer")
builder.setPositiveButton("ok") { dialog, which -> Log.v("Dialog_CLick", "click") }
builder.create()
builder.show()
}
}
}
其中Companion object里面的 getText和 setText都为静态方法,所以转化后都变为Companion object内的方法
Kotlin 随笔小计的更多相关文章
- MVC+EF 随笔小计——NuGet程序包管理
安装EF 打开 工具-库程序包管理器-程序包管理器控制台 输入 install-package entityframework 去MSDN上查看下EF的架构图:http://msdn.microsof ...
- MVC+EF 随笔小计——分部视图(Partial View)及Html.Partial和Html.Action差异
Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在" ...
- MVC+EF 随笔小计————Html Helpers
理论基础 -- Html Helpers 主要分成输入类和显示类. 输入类: TextArea, TextBox Password Hidden DropDownList ListBox (与Drop ...
- unicode随笔小计
科普字符集: ascii:一个字节,占8位,(0000 0000 - 1111 1111) 如果只是英语那就没什么问题. 后来,不同的语言有了编码诞生.为了统一,出现一个大集合.便有了. unicod ...
- scss的初级学习随笔小计
$white: #fff;$three: #333;$six: #666;$nine: #999;$red: #fff;$orange: #f63;$yellow: #fc0;$opcity: rgb ...
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计
表结构: CREATE TABLE [dbo].[Students]( ,) NOT NULL, ) NULL, [Sex] [int] NOT NULL, ) NULL, ) NULL, , ) N ...
- PB gird类型数据窗口 设置分组、分组小计、合计
今天遇到一个需求,gird表格数据如下: 部门 类型 数据 A 类型1 1 A 类型2 2 B 类型1 3 B 类型2 4 合计 10 实际需要显示的结果为: 部门 ...
- 简单的angular购物车商品小计
<!DOCTYPE html> <html lang="en" ng-app="shopApp"> <head> <m ...
- C#给DataTable添加序号、C#给DataTable添加合计、小计
/// <summary> /// 给DataTable添加序号 /// </summary> /// <param name= ...
随机推荐
- js中的this指向问题(小计)
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定,this最终指向调用它的对象. 1.函数调用模式 当一个函数并非一个对象的属性时,那么它就是被当做函数来调用的.在此种模式下,t ...
- web前端设计最好用的工具
一.FSCapture FastStone Capture(FSCapture)是经典好用的屏幕截图软件,还具有图像编辑和屏幕录制两大功能,可以捕捉全屏图像,或者活动窗口.窗口内的控件对象截图.支持手 ...
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配
office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件未损坏,并且文 ...
- 字节转化为结构体BytesToStruct
//结构体转字节数组 public byte[] StructToBytes (object structObj) { int size = Marshal.SizeOf (structObj);// ...
- Log4j介绍与使用
Log4j三大组件 1) 日志记录器Logger负责输出日志信息,并能够对日志信息进行分类筛选,决定哪些日志信息应该被输出,哪些该被忽略.Loggers组件输出日志信息时分为5个级别:DEBUG.IN ...
- jenkins构建任务后发送邮件
1.jenkins登录后-系统管理-系统设置打开后定位到下面的位置:系统管理员邮件地址一定要填写 2.下滑页面定位到extend E-mail Notification:这个是jenkins的一个插件 ...
- spark-jobserver安装实践 (centos7.4)
spark-jobserver 提供了一个RESTful接口来提交和管理spark的jobs,jars和job contexts. 该工程位于:https://github.com/spark-job ...
- war包安装jenkins
转自:https://blog.51cto.com/bigboss/2129358 系统环境: CentOS 7.5 1804 IP:192.168.1.3 关闭selinux.firewalld j ...
- Java集合类学习笔记2
二,具体的集合 集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrayDeque 一种用循环数组实 ...
- 利用python抓取页面数据
1.首先是安装python(注意python3.X和python2.X是不兼容的,我们最好用python3.X) 安装方法:安装python 2.安装成功后,再进行我们需要的插件安装.(这里我们需要用 ...