gpt4 book ai didi

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket 。

kotlin提供了一些机制来扩展已有的类,如下

还记得我们之前写过的point3d类吗?(将其略作修改,将成员变量改为double类型) 。

让我们为其扩展一个length函数 。

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

扩展的方法很简单,只要在函数名前面加上类名就行了. 。

这样point3d的对象就有了一个名为length的方法. 。

运行的结果不出所料

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

除此之外,在kotlin中还有一些特殊的类,比如data class

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

有些类只包含数据,不需要包含方法,就可以声明为data class,当然data class并不是不能包含方法. 。

data class最大的特色在于copy函数和多变量赋值,可以在一条语句里面把不同的字段赋值给不同的变量. 。

运行结果如下

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

kotlin一般在类中不允许static成员,前面曾经说过可以使用companion object来创建一个伴生对象从而可以使用static成员. 。

这里还有一种方法就是使用object关键字声明一种特殊的类,这个类只有一个实例,因此看起来整个类就好像是一个对象一样.如下

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

这里把类声明时的class关键字改成了object,这个类里面的成员默认都是static的. 。

另外我们可以看到在这段代码中出现了一个use函数,这个函数的参数是一个lambda表达式或者说一个匿名函数. 。

其参数必须实现closeable接口,其参数在函数结束后会自动关闭,调用其close方法,无论是否发生异常. 。

其实这个用法来自于java7中引入的一个语法,在java7中引入的这个语法名为try-with-resource,其对应的java代码如下

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

server变量在try语句中被声明并初始化,无论是否发生异常,最后server都会被自动关闭. 。

之所以引入这种语法,是为了解决finally语句的不足. 。

在kotlin中的use函数就是实现了java中try-with-resource语句的功能. 。

这段kotlin代码写的是一个多线程socket服务器的demo,其他部分的代码如下

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

客户端代码

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

当socket服务器启动后,再启动socketclient,运行结果如下

服务器输出

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

客户端输出

Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

可以看到socket服务已经正常启动了. 。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

原文链接:https://my.oschina.net/yuanhonglong/blog/494151 。

最后此篇关于Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket的文章就讲到这里了,如果你想了解更多关于Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com