Lua 面试题 目录

Lua 虚拟栈的索引规则是什么?

推荐答案

Lua 虚拟栈的索引规则如下:

  1. 正索引:从栈底到栈顶,索引从 1 开始递增。栈底的索引为 1,栈顶的索引为栈中元素的数量。
  2. 负索引:从栈顶到栈底,索引从 -1 开始递减。栈顶的索引为 -1,栈底的索引为 -n(n 为栈中元素的数量)。

本题详细解读

正索引

  • 栈底:栈的第一个元素(最早入栈的元素)的索引为 1。
  • 栈顶:栈的最后一个元素(最后入栈的元素)的索引为栈中元素的数量。
  • 示例:如果栈中有 3 个元素,那么它们的索引分别为 1、2、3。

负索引

  • 栈顶:栈的最后一个元素(最后入栈的元素)的索引为 -1。
  • 栈底:栈的第一个元素(最早入栈的元素)的索引为 -n(n 为栈中元素的数量)。
  • 示例:如果栈中有 3 个元素,那么它们的索引分别为 -3、-2、-1。

使用场景

  • 正索引:通常用于从栈底开始访问元素。
  • 负索引:通常用于从栈顶开始访问元素,特别是在处理不确定栈中元素数量的情况下,负索引可以方便地访问栈顶附近的元素。

注意事项

  • Lua 的虚拟栈索引规则使得开发者可以灵活地访问栈中的元素,无论是从栈底还是栈顶开始。
  • 在使用负索引时,需要注意栈中元素的数量,以避免索引越界。
纠错
反馈