列表¶
列表类型是一个复合数据类型,可使用关键字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']。