函数多个返回值与unpack的用法
函数 用法 多个 返回值
2023-09-11 14:19:51 时间
-- return the index of max number and himself -- 函数可以返回多个值 function get_max( T ) local index = 1 local max = T[1] for i, v in ipairs( T ) do if v > max then max = v index = i end end return index, max end -- 如果函数的参数为表或者字符串 可以省略小括号 -- index, value = get_max{ 10, 1, -1, 0, 3, 20, 9, 200, 8, 2, 4 } -- print( index, value ) -- 返回一个子字符串的开始位置和结束位置 function get_pos( str, substr ) s, e = string.find( str, substr ) return s, e end s, e = get_pos( "Hello,ghostwu,how are you?", "ghostwu" ) print( '字符串的开始位置' .. s .. ', 结束位置为:' .. e )
function foo() end function foo1() return 'a' end function foo2() return 'a', 'b' end -- 按位置接收, 多余的被丢弃 x, y = foo2() print( x, y ) -- a, b x, y = foo1() print( x, y ) -- a, nil x, y = foo() print( x, y ) -- nil, nil -- 函数调用表达式不是最后一个表达式, 只返回一个值 x, y = foo2(), 10 print( x, y ) -- a, 10 print( foo2(), 100 ) -- a 100 t = { foo2(), 20 } -- a, 20 for i, v in ipairs( t ) do io.write( v, "\t" ) -- a, 20 end io.write( "\n" )
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > unpack( { 10, 20, 30 } ) > print( unpack{ 10, 20, 30 } ) 10 20 30 > a, b = unpack{ 10, 20, 30 } > print( a, b ) 10 20 > s, e = string.find( "hello,ghostwu", "ghost" ); print( s, e ) 7 11 > s, e = string.find( unpack{ "hello,ghostwu", "ghost" } ) ; print( s, e ) 7 11
相关文章
- Matlab中ind2rgb函数用法
- Matlab中linspace函数的用法
- Matlab中image函数用法
- Matlab中imag函数用法
- strcspn函数的用法
- python内置函数all()用法详解
- python中sys.exc_info()函数用法详解
- Python内置函数divmod()用法详解
- python内置函数map()函数用法详解
- SS-CA-APPLE:为什么需要在信号与系统分析中引入“复变函数”?
- 第139章 SQL函数 TIMESTAMPDIFF
- [转]MySQL函数大全 及用法示例
- Shell:数组和函数用法
- python之函数用法setdefault()
- python之函数用法startswith()
- python之函数用法__getitem__()
- UVa 11440 Help Tomisu (数论欧拉函数)
- 剑指 Offer 30. 包含min函数的栈
- 关于URL编码/javascript/js url 编码/url的三个js编码函数
- angularjs嵌套组件的钩子函数与信息传递
- 变量、存储过程与函数
- 编译(- c)某个源文件生成目标文件只需要路径有调用函数的头文件,链接(- o)成可执行文件需要加上实现函数的目标文件
- 浅析Object.assign()基本用法(对象合并、同名属性覆盖、仅1个参数时直接返回、target不是对象会转成对象、源对象位置为非对象时不同的处理规则-字符串的特殊情况、拷贝的属性限制)及需要注意的点(浅拷贝、同名属性替换、数组的处理-把索引当属性替换、取值函数先取值再拷贝)和常见应用(给对象添加属性、合并多个对象、给属性设置默认值)
- 小知识随手记(十):多重重复解构对象、es6函数带默认参数时将生成声明作用域、一些注意点、动态设置getter/setter、mysql将字符串字段转为数字排序或比大小、pointer-events:none;属性
- 第五周-GD32F4XX的配置和函数归纳(5)
- Python的range、enumerate和zip函数用法
- hive条件函数
- JavaScript 函数 Call的使用
- const的用法,特别是用在函数前面与后面的区别!