Arrays 在postgresql中数组的索引是如何工作的?
我在postgresql中有这个函数Arrays 在postgresql中数组的索引是如何工作的?,arrays,postgresql,Arrays,Postgresql,我在postgresql中有这个函数 CREATE OR REPLACE FUNCTION get_values(vals numeric[]) RETURNS void AS $func$ DECLARE BEGIN RAISE NOTICE 'value: --%',vals[0]; RAISE NOTICE 'value: --%',vals[1]; RAISE NOTICE 'value: --%',vals[2]; END $func$ LANGUAGE plp
CREATE OR REPLACE FUNCTION get_values(vals numeric[])
RETURNS void AS
$func$
DECLARE
BEGIN
RAISE NOTICE 'value: --%',vals[0];
RAISE NOTICE 'value: --%',vals[1];
RAISE NOTICE 'value: --%',vals[2];
END
$func$ LANGUAGE plpgsql;
奇怪的是,在调用此函数时,数组的索引从1开始,而不是从0开始
select get_values(ARRAY[1,2,3]);
或
输出:
NOTICE: value: --<NULL>
NOTICE: value: --1
NOTICE: value: --2
get_values
------------
注意:值:--
注意:值:--1
注意:值:--2
获取值
------------
在postgresql中,数组的索引从1开始?如果您阅读了手册中的“访问数组”一章,它就在那里:
默认情况下,PostgreSQL对数组使用基于一的编号约定,即n个元素的数组以数组[1]开始,以数组[n]结束
(强调矿山)
摘自:
奇怪吗?我猜你没读过。我不知道这有什么奇怪的。我开始计算1,如果我计算的东西。“μ”太短了,我只使用奇怪的词,因为我从这些编程语言中学习到C,C++和java,数组的索引从0开始。但是,是的,我没有检查文档,我认为这样会比检查文档快得多。不过还是要感谢你的评论和回答。
NOTICE: value: --<NULL>
NOTICE: value: --1
NOTICE: value: --2
get_values
------------