我有一个未知长度的列表,其中包含字符串。我想将倒数第二个项目与倒数第二个项目进行比较,但是我找不到一种简单的方法来检索这些元素,因此可以对它们进行比较。
我尝试获取列表的长度,然后使用(length-1)作为传递到列表GET
函数的索引,但这似乎不起作用。
set(my_list a b c) # I don't actually know the length of the original list
list(LENGTH my_list list_len)
list(GET my_list (list_len-1) last_item) # doesn't work
我希望将元素c
保存在last_item
变量中,但是它保持为空。在CMake中执行此操作的正确方法是什么?
答案 0 :(得分:2)
您必须使用math
才能执行数学运算。
list(LENGTH my_list list_len)
math(EXPR list_last "${list_len} - 1")
list(GET my_list ${list_last} last_item)
编辑:可以使用负数从列表末尾获取元素,可以使用-1来获取列表的最后一项:
list(GET my_list -1 last_item)