跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

列表

列表类型是一个复合数据类型,可使用关键字LIST<E>或ARRAY<E>声明。其中,E代表列表元素的数据类型。列表元素可以是任意预定义数据类型,也可以是除记录和路径外的复合数据类型。

一个列表是一个有序的元素集合,每个元素可以通过其位置被访问。一个列表中的所有元素必须数据类型相同。例如,一个整数列表不能包含字符串值。

列表索引

列表索引是通过其位置访问列表中的元素的过程,这些位置称为列表索引。

列表的索引从 0 开始。从左到右第一个元素的索引为 0,第二个元素的索引为 1,以此类推。

负索引可用于访问列表的末尾元素。最后一个元素的索引为 -1,倒数第二个元素的索引为 -2,以此类推。

如果索引超出范围,将返回NULL。

示例

LET l=[1,2,4,5] RETURN l[0] AS a , l[-1] AS b, l[100] AS c

列表切片

列表切片是从列表中提取子集的过程。

列表切片的语法为list[start:end:step],其中start是要包含的第一个元素的索引,end是要包含的最后一个元素的索引,step是步长。

三个参数都是可选的。如果未指定start,则默认值为 0。如果未指定end,则默认值为列表的长度。如果未指定step,则默认值为 1。

step的取值不能为 0。如果step取值为负数,则列表将以相反的顺序遍历。

在以下情况下,切片的结果为空列表:

  • step为正数,且start的值大于end的值。
  • start的值大于列表的长度。
  • start的值为负数,且其绝对值大于列表的长度。

示例

LET l=[0,1,2,3,4] RETURN l[0:2] AS a, l[0::2] AS b, l[::] AS c, l[::-2] AS d, l[-1:-3:-1] AS e, l[1:0] AS f, l[1:1] AS g, l[6:10] AS h

声明示例

'''
CREATE GRAPH TYPE IF NOT EXISTS person AS  
    { NODE Person 
        ( { 
            id INT64 PRIMARY KEY,  
            is_adult BOOL DEFAULT TRUE,  
            name STRING DEFAULT 'John Doe',  
            hobbies LIST<STRING> DEFAULT ['reading', 'swimming'], 
            birthday DATE DEFAULT DATE('1990-01-01') 
        } ) 
    }
'''

在上述示例中,属性hobbies的数据类型为列表(LIST),列表元素的数据类型为字符串(STRING),默认值为['reading', 'swimming']。

更多信息

列表函数