如何在Ballerina中创建空表并逐步添加记录及相关函数查询
在Ballerina中创建空表并添加记录及表函数说明
一、创建空表并添加记录
你的Employee记录里,name是只读字段,刚好适合作为表的主键(Ballerina的表必须指定主键来唯一标识每条记录)。下面是具体实现步骤:
1. 定义空表
type Employee record {| readonly string name; string department; |}; // 创建以`name`为主键的空Employee表 table<Employee> key(name) employees = table [];
2. 逐步添加记录
有两种常用方式可以向表中添加记录:
方式一:使用add()函数(带错误处理)
add()函数会返回error?类型,当主键重复时会抛出错误,适合需要处理冲突的场景:
// 添加第一条员工记录 check employees.add({name: "Alice", department: "Engineering"}); // 添加第二条员工记录 check employees.add({name: "Bob", department: "Marketing"});
注:如果不需要显式处理错误,也可以用
ignore替代check,忽略主键冲突的错误。
方式二:使用push语法(简化写法)
Ballerina 2201.4.0及以上版本支持push语法,写法更简洁,但主键重复时会直接panic,适合确定不会有重复主键的场景:
employees.push({name: "Charlie", department: "HR"});
二、Ballerina表常用内置函数
Ballerina的table类型提供了一系列实用的内置函数,以下是常用的几类:
数据操作类
add():添加单条记录,返回error?,主键重复时返回错误。error? addResult = employees.add({name: "Dave", department: "Finance"});addAll():批量添加多条记录,接收可迭代的记录集合,同样处理主键冲突。Employee[] newEmployees = [{name: "Eve", department: "Engineering"}, {name: "Frank", department: "Marketing"}]; error? addAllResult = employees.addAll(newEmployees);delete():根据主键删除记录,返回被删除的记录或()(无对应记录时)。Employee? deletedEmp = employees.delete("Bob");update():根据主键更新记录的非只读字段,返回更新后的记录或()(无对应记录时)。Employee? updatedEmp = employees.update("Alice", {department: "Product"});
查询与遍历类
get():根据主键获取记录,返回对应记录或()(无对应记录时)。Employee? emp = employees.get("Alice");keys():返回所有主键的迭代器,可用于遍历所有主键。iterator<string> empNames = employees.keys(); for string name in empNames { io:println(name); }values():返回所有记录的迭代器,可用于遍历所有记录。iterator<Employee> emps = employees.values(); for Employee emp in emps { io:println(emp.name, " - ", emp.department); }
统计与判断类
size():返回表中记录的总数。int empCount = employees.size(); io:println("Total employees: ", empCount);hasKey():判断表中是否存在指定主键的记录,返回布尔值。boolean hasCharlie = employees.hasKey("Charlie");
内容的提问来源于stack exchange,提问作者LUHEERATHAN THEVAKUMAR
相关产品推荐
相关产品推荐

