谷歌将在 Kotlin 中支持 Protocol Buffers 数据格式-阿里云开发者社区

开发者社区> -技术小能手-> 正文

谷歌将在 Kotlin 中支持 Protocol Buffers 数据格式

简介: 谷歌将在 Kotlin 中支持 Protocol Buffers 数据格式
+关注继续查看

11 月 1 日,谷歌宣布在 Kotlin 中支持 Protocol Buffers,进一步加深对 Kotlin 这门编程语言的投资。

Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。


去年,谷歌公布开了对 gRPC 的 Kotlin 支持,这是一种开源远程过程调用 (RPC) 框架,为 Google 的数千个微服务提供支持。谷歌表示,未来将大力投资 Kotlin 语言和生态系统,Android 开发以 Kotlin 优先,后端服务的构建也尽量用 Kotlin,这都归功于他们对Kotlin 这门语言的表现力、安全性和跟 Java 双向互操作性的喜爱 。


现在,开发者可以使用 proto 编译器中新内置的 Kotlin 支持,来生成惯用的 Kotlin 领域特定语言 (DSL)。


例如,这是一个简单的

protocol

buffer 消息,代表掷骰子:

message DiceSeries {

  message DiceRoll {

    int32 value = 1;      // value of this roll, e.g. 2..12

    string nickname = 2// string nickname, e.g. "snake eyes"

  }

  repeated DiceRoll rolls = 1;

}


它在Java中是这样的:

DiceSeries series = DiceSeries.newBuilder()

    .addRoll(DiceRoll.newBuilder()

        .setValue(5))

    .addRoll(DiceRoll.newBuilder()

        .setValue(20)

        .setNickname("critical hit"))

    .build()

在此版本中,protos 提供了一组表达性的 DSL 构建方法,让这段代码在 Kotlin 中变得更加简洁、优雅,下面是使用新的 Kotlin 原型绑定编写的骰子代码:

val series = diceSeries {

  rolls = listOf(

    diceRoll { value = 5 },

    diceRoll {

      value = 20

      nickname = "critical hit"

    }

  )

}


由此可见,Kotlin 版本使用 Kotlin 类型安全构建器,让代码更加简洁,而且不需要显式调用 build方法。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Fundebug:JavaScript插件支持错误采样
Fundebug的付费套餐主要是根据错误事件数制定的,这是因为每一个发送到我们服务器的事件,都会消耗一定的CPU、内存、磁盘以及带宽资源,尤其当错误事件数非常大时,会对我们的计算资源造成很大压力。 如果您希望采样收集错误,比如“只收集30%的错误”,可以将sampleRate属性设为0.3。
502 0
@ConfigurationProperties注解对数据的自动封装
@ConfigurationProperties注解对数据的自动封装 @ConfigurationProperties可以对基本数据类型实现自动封装,可以封装格式为yyyy/MM/dd的日期 测试代码: package aat; import java.
1472 0
Blender软件导出的obj数据格式文件内容解读
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/79048521 【cube.
1374 0
Dubbo 在跨语言和协议穿透性方向上的探索:支持 HTTP/2 gRPC 和 Protobuf
本文整理自刘军在 Dubbo 成都 meetup 上分享的《Dubbo 在多语言和协议穿透性方向上的探索》。 本文总体上可分为基础产品简介、Dubbo 对 gRPC (HTTP/2) 和 Protobuf 的支持及示例演示三部分,在简介部分介绍了 Dubbo、HTTP/2、gRPC、Protobuf 的基本概念和特点;第二部分介绍了 Dubbo 为何要支持 gRPC (HTTP/2) 和 P
684 0
Spring 5.0.3.RELEASE中的 Kotlin 语言等支持
Spring 5.0.3.RELEASE中的 Kotlin 语言支持 https://docs.spring.io/spring/docs/current/spring-framework-reference/languages.html 返回目录 1. Kotlin Kotlin是静态类型语言定位的JVM(以及其他平台),它允许写简洁而优雅的代码,同时提供很好 的互操作性与Java编写的现有的库。
1141 0
1727
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
《2021云上架构与运维峰会演讲合集》
立即下载