如何使用Ballerina的map函数将Person记录流转为Employee记录流?
使用map函数将Person记录流转为Employee记录流
要实现Person类型记录流向Employee类型记录流的转换,核心是利用map函数遍历源流中的每条记录,通过自定义转换逻辑生成目标类型记录。结合你给出的类型定义,具体实现如下(以Ballerina语言为例,你的类型定义符合该语言语法规范):
完整代码示例
import ballerina/lang.stream; import ballerina/io; type Person record {| string name; int age; |}; type Employee record {| string name; string company; |}; public function main() { // 构造示例Person流 stream<Person> personStream = [ {name: "Alice", age: 30}, {name: "Bob", age: 28} ].toStream(); // 用map函数执行类型转换 stream<Employee> employeeStream = stream:map(personStream, function(Person p) returns Employee { return { name: p.name, // 直接复用Person的name字段 company: "Global Tech Inc." // 此处可根据业务逻辑动态赋值,示例用固定值 }; }); // 遍历输出转换后的Employee流 foreach Employee emp in employeeStream { io:println(emp); } }
关键说明
stream:map是流处理的核心函数,它接收两个参数:源流和转换函数。- 转换函数逻辑清晰:接收一条
Person记录,提取可复用的name字段,再为Employee的company字段赋值(可以是固定值、配置读取值,或是基于Person其他属性的计算结果)。 - 转换后会生成全新的
Employee类型流,不会修改原有Person流的数据。
内容的提问来源于stack exchange,提问作者Lakshan Weerasinghe
相关产品推荐
相关产品推荐

