Kotlin------函数和代码注释
定义函数
Kotlin定义一个函数的风格大致如下
访问控制符 fun 方法名(参数,参数,参数) : 返回值类型{...... }
- 访问控制符:与Java有点差异,Kotlin的访问范围从大到小分别是public、internal、protected、private,不声明默认是public;
- 返回值类型:不需要返回类型的函数,后面的 : 返回值类型可以缺省(这里可以看到无论是变量还是方法,Kotlin都喜欢名字在前,类型在后);
/***Kotlin版代码***/ //有返回参数的函数 fun getName(): String {return "Kotlin" } //无返回参数的函数 fun displayName(name: String) {println("name: $name") } /***Java版代码***/ public String getName() {return "Java"; } public void displayName(String name) {System.out.println("name: " + name); }
相比Java,Kotlin支持包级函数,即函数不依赖于类而存在。
/***Kotlin版代码***/ package lesson1 /*** Created by Clock on 2017/6/18.*/ fun main(args: Array<String>) {println("Kotlin") } /***Java版代码***/ package lesson1; /*** Created by Clock on 2017/6/18.*/ public class Lesson1 {public static void main(String[] args) {System.out.println("Java");} }
对比上面的代码,Java创建一个方法前还需要先创建一个类。刚开始安装IntelliJ IDEA编写代码时,我还有个疑惑,为什么有创建Kotlin File/Class两个选择,到这里就明白了。
参数变长
Kotlin的参数变长非常简单,传递的参数使用关键字vararg标明即可
/***Kotlin版代码***/ //参数变长 fun displayActors(vararg name: String) {println("actors: " + name); } /***Java版代码***/ public void displayActors(String... name) {System.out.println("actors :" + name); }
相比Java,变长参数在Kotlin代码中要常见很多。
静态变量和函数
Kotlin没有Java中的static概念,如果在Kotlin中需要像Java一样定义静态变量和函数可以使用companion object,companion object后可以加上自定义的object名,也可以省略。
/***Kotlin版代码***/ class KotlinStatic {companion object Test {var kotlinInt: Int = 0fun getInstance(): KotlinStatic {return KotlinStatic()}} } /***Java版代码***/ public class Lesson1 {public static int javaInt = 0;public static Lesson1 getInstance() {return new Lesson1();} }
这样在需要使用的地方就可以做如下调用了
package lesson0 import lesson1.KotlinStatic /*** Created by Clock on 2017/6/17.*/ fun main(args: Array<String>) {println("Hello, world!")KotlinStatic.kotlinIntKotlinStatic.getInstance() }
虽然看起来companion object实现了类似Java中static一样的功能,但与Java不同的是,Kotlin在运行时是会创建一个companion object实例对象。在Kotlin中,如果真的想要实现和Java中的static变量或函数,官方更推荐使用包级别的变量或函数来实现。
返回 Unit 的函数
如果一个函数不返回任何有用的值,它的返回类型是 Unit 。 Unit 是一种只有一个值 —— Unit 的类型。这个值不需要显式返回
fun printHello(name: String?): Unit {if (name != null)println("Hello ${name}")elseprintln("Hi there!")// `return Unit` 或者 `return` 是可选的 }
Unit
返回类型声明也是可选的。上面的代码等同于
fun printHello(name: String?) {…… }
代码注释
正如 Java 和 JavaScript,Kotlin 支持行注释及块注释。
// 这是一个行注释/* 这是一个多行的块注释。 */
与 Java 不同的是,Kotlin 的块注释可以嵌套。就是说,你可以这样注释:
/*** hhhh* /*** fff* /*** ggggg* */ * */** abc**/
Kotlin------函数和代码注释相关推荐
- 看看函数名和注释,AI就能自动生成代码,程序员:这不真实,我要失业
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:机器之心 参与:张倩.Racoon X.Jamin 你 ...
- 在VS2010里可以给JS函数添加代码提示\注释
经常编写JS的朋友常常会因为函数写多了,隔一段时间就会忘记了函数的用途,或者函数里带的参数作用情况,这个时候会联想到VS工具里的强大提示功能,多 希望也能在JS上实现呀,告诉你,这个想法并不是多难,V ...
- Kotlin 4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName
一起来学Kotlin:概念:4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName 这 ...
- 归并排序(代码注释超详细)
归并排序: (复制粘贴百度百科没什么意思),简单来说,就是对数组进行分组,然后分组进行排序,排序完最后再整合起来排序! 我看了很多博客,都是写的8个数据呀什么的(2^4,分组方便),我就想着,要是10 ...
- 代码注释//_您应该停止编写//的五个代码注释,并且//应该开始的一个注释
代码注释// 提供来自您最喜欢和最受欢迎的开源项目的示例-React,Angular,PHP,Pandas等! (With examples from your favorite and most p ...
- tensorflow笔记:流程,概念和简单代码注释
tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果.这两天看了看官方的tutorial,极客学院的文档,以及综合tensorflow的源码,把自己的心得整理了一 ...
- php代码注释处理类库,php代码注释
代码注释在多人开发的时候非常重要,现象一下,一段代码没有任何主要你去结合运行的效果去看实现的逻辑,那是非常费劲的事. 如果让别人看懂你写的代码,代码注释启动非常重要的作用.一个不会写代码注释的不是一个 ...
- java的注释规范_Java代码注释规范
1,单行(单行)-简短说明: ///... 单行注释: 代码中的单行注释. 最好在注释前有一个空行,并在其后加上与代码相同的缩进级别. 如果无法完成一行,则应使用块注释. 评论格式: 在行首注释: 在 ...
- 代码注释规范-google版本
注释 注释虽然写起来很痛苦,但对保证代码可读性至为重要,下面的规则描述了应该注释什么.注释在哪儿.当然也要记住,注释的确很重要,但最好的代码本身就是文档(self-documenting),类型和变量 ...
最新文章
- 腾讯视频会议使用测试
- Xamarin Android项目真机测试闪退
- HDU 2612 Find a way(BFS)
- 【Qt】简单QT文本编辑器
- HDU 6030 Happy Necklace
- SAP CRM One Order object type in line item - when it is filled
- Object-c 总结之NSArray
- maven常见问题归纳
- 解决方案:PowerDesigner 16设置生成SQL column不含有collate chinese_prc_ci_as
- Introduction to CALayers Tutorial
- python3.6 - threading 多线程编程基础(1)
- tensorflow分布式运行
- nj04---事件回调函数
- 基于51单片机的温度检测调节系统设计
- Android 在PreferenceActivity 中移除一个Preference
- 初探NIVIDIA GPU+CUDA+pyTorch
- Redis:Error starting userland proxy: listen tcp4 0.0.0.0:6379: bind: address already in use
- 【重识云原生】第一章——不谋全局不足以谋一域
- java web分层和层间数据传递 vo bo po
- Java8-使用stream.sorted()对List排序
热门文章
- Python处理脑电--Epochs数据可视化
- 300多工程师死磕2年,vivo终于发布自研芯片V1,降低功耗50%全片上储存
- 程序员们的启蒙老师,终于拿图灵奖了
- 波士顿动力副总裁:机器人一天就学会了芭蕾舞,尚未使用机器学习技术
- 特斯拉撞了警车:辅助系统Autopilot全程开启,连撞两车还没自动停下
- 史上最大中文知识图谱,规模达1.4亿,现在开源可下载,还有配套聊天机器人API...
- JSP标签:jsp内置标签、jstl标签、自定义标签
- Dynamic Expressions and Queries in LINQ
- clear session on close of browser jsp
- openssl 创建私有CA