lua 面试题
Posted preston
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 面试题相关的知识,希望对你有一定的参考价值。
Lua中有8个基本类型分别为
nil、boolean、number、string、userdata、 function、thread、 table
空 布尔 数字 字符串 自定义类型 函数 线程 表
给出下面 表达式的输出是什么
print(type("Hello world")) --> string
print(type(10.4*3)) --> number
print(type(print)) --> function
print(type(type)) --> function
print(type(true)) --> boolean
print(type(nil)) --> nil
print(type(type(X))) --> string
print("10"+ 1) --> 11
print("10 + 1") --> 10 + 1
print("hello"+ 1) --> 报错 (无法转换 "hello")
print(10 .. 20) --> 1020
pairs 和 ipairs区别
pairs: 迭代 table,可以遍历表中所有的 key 可以返回 nil
ipairs: 迭代数组,不能返回 nil,如果遇到 nil 则退出
请写一个多值返回的函数
function foo2 () return 'a','b' end
请写一个可变参数的函数
function g (a, b, ...) end
g(3, 4, 5, 8) a=3, b=4, arg={5, 8; n=2}
function select (n, ...)
return arg[n]
end
给出下面代码的输出
print(string.find("hello hello", " hel")) --> 6 9
print(select(1, string.find("hello hello", " hel"))) --> 6
print(select(2, string.find("hello hello", " hel"))) --> 9
string.sub("123456",2,-2)
结果2345
有一个table local test0 ={1,9,2,8,3,7,4,6} 写一个算法从小到大排序
function bubblesort( test0 )
if test0 == null then
return
end
while (true) do
local exchange = false;
for i = 1, #test0 do
if test0[i] > test0[i + 1] then
local temp = test0[i]
test0[i] = test0[i + 1]
test0[i + 1] = temp
exchange = true
end
end
if (exchange == false) then
break;
end
end
end
编写一个函数,将某个数组分成两个数组,一个存放偶数,一个存放奇数
local array = {4,2,3,4,1,6,5,8,7}
function device(array)
local oushuArr = {}
local jishuArr = {}
for i = 1, #array do
if t[i] % 2 == 0 then
oushuArr[#oushuArr + 1] = array[i]
else
jishuArr[#jishuArr + 1] = array[i]
end
end
return oushuArr,jishuArr
end
将一个数组从小到大排序,然后将重复出现的数字全部删除(后续数字往前移)
public class Solution {
public int removeDuplicates(int[] nums)
{
if (nums == null || nums.length == 0)
{
return 0;
}
int size = 0;
for (int i = 0; i < nums.length; i++)
{
if (nums[i] != nums[size])
{
nums[++size] = nums[i];
}
}
size++;
return size;
}
}
写出这段程序的运行结果
test={1,2,3,4,5,6,7,8}
print(#test)
结果: 8
写出这段程序运行结果
a = {}
a["x"] = 10
b = a
print(b["x"])
b["x"] = 20
print(a["x"])
结果: 10 10
请写一个带有不定参数的lua 函数 并输出所有的参数
结果:
function printfunction (...)
print tostring(...)
end
以上是关于lua 面试题的主要内容,如果未能解决你的问题,请参考以下文章