Kotlin学习笔记一-编码规范

编码规范·

  1. 类与对象的名称以大写字母开头并使用驼峰风格
  2. 函数、属性与局部变量的名称以小写字母开头、使用驼峰风格而不使用下划线:
  3. 常量名称(标有 const 的属性,或者保存不可变数据的没有自定义 get 函数的顶层/对象
    val 属性)应该使用大写、下划线分隔的名称
  4. 格式化 代码缩进规范
  5. 函数格式化,当参数过多时,懂得换行(一般两个参数一行,有共同意义)
  6. 变量作用域问题,同类型函数应该集中(有一定联系或者共同),变量也是如此
  7. 废代码的清理
    总而言之,代码必须清晰,容易阅读。
    类布局
    通常,一个类的内容按以下顺序排列:
    属性声明与初始化块
    次构造函数
    方法声明
    伴生对象
    不要按字母顺序或者可见性对方法声明排序,也不要将常规方法与扩展方法分开。而是要把
    相关的东西放在一起,这样从上到下阅读类的人就能够跟进所发生事情的逻辑。选择一个顺
    序(高级别优先,或者相反)并坚持下去。

变量与常量

1,val 只读变量 不是绝对只读 还是可以修改的
类型推断 不一定要写类型 例如 val a="“hddh”
2.可变变量 var
3,const val 编译时常量只能在函数之外 因为内存模型的缘故.相当于java的静态常量
eg const val MAX=200 java public staic final int MAX=200
注意:const为常变量。方法区内:储存常量(静态常量,成员常量,局部常量),静态数据(static修饰的对象,变量等 )。

4,这里讨论一下 引用与对象。引用只是一个4字节的数据,里面存放了它所指向的对象的地址,通过这个地址可以访问对象。 对于基本数据类型 int等,其值直接直接储存在开辟的内存空间里,而对于基本类型的包装类其他对象,所开辟的内存空间储存的仅是引用地址(对象的地址),一般的对象,new 一个 地址肯定是不同的。但是,对于基本类型的包装类和字符串类,每次new ,就会重复的创建与销毁,所以引入常量池概念,而常量池,必须关注编译期。以字符串常量池为例,a=“dd”,b=“cc”,d=a+b。编译期,就存在把字面量 “dd","cc"放入常量池,还会进行优化 把a+b表示的”ddcc“也放入常量池。这也解释为什么类里的static 修饰的变量或者方法,不用new 也能访问。
比较好的关于常量池的文章

https://www.cnblogs.com/syp172654682/p/8082625.html

5,java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量。
因而interface通常是存放常量的最佳地点,例如项目中经常用到 xxxConstants类,里面放一些常量。对于kotlin,可以用object类。

range 表达式

age in 3…4 !in 也行 也可以用list 之类。可以很方便灵活

when表达式

when 就是java的switch 。defaut 用 else 代替

string模板

支持引号内放入变量值
val a=“hddj” val b=“dhdh” println(“ a h h h a hhh ahhhb”) 和PHP有点像。也可以"$a fjf ${if(flag)"djdj"else “ddj”} "放表达式

kotlin 函数参数

可以设置默认参数值 这样如果你不传的话 就用默认的 fun a(j:int =4)
还可以具名传参数 a(j=6)运用于函数参数较多 容易混乱的情况

返回空

kotlin 没有返回类型 就是 unit 类型 函数没有写返回类型 打印出来就是unit 还有一个nothing类型 todo函数里的 用来抛异常

反引号中的函数名

避免冲突 和用特殊字符做函数名 例如空格之类 。例如is是kotlin的关键字 但java不是 当kotlin调用java中的方法 is 那么就会显示冲突 这时加上反引号就行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值