-- return the index of max number and himself
-- 函数可以返回多个值
function get_max( T )
local index =
local max = T[]
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(),
print( x, y ) -- a, 10 print( foo2(), ) -- a 100 t = { foo2(), } -- a, 20
for i, v in ipairs( t ) do
io.write( v, "\t" ) -- a, 20
end
io.write( "\n" )
Lua 5.1.  Copyright (C) - Lua.org, PUC-Rio
> unpack( { , , } )
> print( unpack{ , , } ) > a, b = unpack{ , , }
> print( a, b ) > s, e = string.find( "hello,ghostwu", "ghost" ); print( s, e ) > s, e = string.find( unpack{ "hello,ghostwu", "ghost" } ) ; print( s, e )

函数多个返回值与unpack的用法的更多相关文章

  1. 【C语言入门教程】5.1 函数说明 与 返回值

    C 语言是结构化语言,它的主要结构成分是函数.函数被作为一种构件,用以完成程序中的某个具体功能.函数允许一个程序的各个任务被分别定义和编码,使程序模块化.本章介绍 C 语言函数的设计,如何用函数分解程 ...

  2. 关于fork( )函数父子进程返回值的问题

    fork()是linux的系统调用函数sys_fork()的提供给用户的接口函数,fork()函数会实现对中断int 0x80的调用过程并把调用结果返回给用户程序. fork()的函数定义是在init ...

  3. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  4. C++ 需要返回值的函数却没有返回值的情况 单例模式

    昨天在看前些天写的代码,发现一个错误. #include <iostream> using namespace std; class singleton { public: static ...

  5. 函数指针的返回值是指针数组,数组里放的是int;函数指针的返回值是指针数组,数组里放的是int指针

    函数指针的返回值是指针数组,数组里放的是int 函数指针的返回值是指针数组,数组里放的是int指针 #include <stdio.h> #include <stdlib.h> ...

  6. python函数进阶(函数参数、返回值、递归函数)

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...

  7. 9 - Python函数定义-位置参数-返回值

    目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...

  8. go语言基础之函数只有一个返回值

    1.函数只有一个返回值 示例1: package main //必须有一个main包 import "fmt" func myfunc01() int { return 666 } ...

  9. Python函数变量和返回值

    Python函数的全局变量和局部变量 1.不同的编程语言,程序可以分为函数和过程两大类,函数具有具体返回值,而过程则不具有具体的返回值,python只具有函数,因为对于它的一般函数,其返回值为所具体返 ...

随机推荐

  1. Windows 10 IoT Core 17115 for Insider 版本更新

    今天,微软发布了Windows 10 IoT Core 17115 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性. 一些已知的问题如下: F5 driver depl ...

  2. PHP判断访问系统的用户设备类型

    当今的电子设备越来越多,我们在开发过程中往往也需要分析用户使用的电子设备类型.下面是采用PHP代码来获取用户使用的哪些类型的电子设备来访问自己的平台. /** * 用户设备类型 * @return s ...

  3. [Swift]枚举类型:UIBarButtonItem的24种样式

    UIBarButtonSystemItemFlexibleSpace 可变空白, 在调用的过程中,使用  UIBarButtonSystemItemFlexibleSpace去占位,达到实现规范化的目 ...

  4. 访问https 报错ssl 协议异常

    报错信息: ERROR][http-nio-8888-exec-1] - Servlet.service() for servlet [dispatcherServlet] in context wi ...

  5. SpringBoot+Mybatis集成搭建

    本博客介绍一下SpringBoot集成Mybatis,数据库连接池使用alibaba的druid,使用SpringBoot微框架虽然集成Mybatis之后可以不使用xml的方式来写sql,但是用惯了x ...

  6. Spring 实现事务的三种方式

    事务:保证数据的运行不会说A给B钱,A钱给了B却没收到. 实现事务的三种方式(重要代码): 1.aspectJ AOP实现事务: <bean id="dataSourceTransac ...

  7. python 中argparse 实例解析

    一 概念: argparse是python的一个命令行解析包.它可以使写用户友好的命令行接口变得非常容易.该模块定义什么参数是需要的,并且能指出怎么解析sys.argv的参数.它也可以自动的生成帮助和 ...

  8. Python代码规范之---代码不规范,亲人两行泪

    任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步! 关于代码规范 Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档 其中第 8 篇 ...

  9. [EXP]windows全版本SMB溢出工具加强版

    工具:k8加强版zzz 编译:python 漏洞:MS17-010 用法: zzz_exploit.exe 192.11.22.82zzz_exploit.exe 192.11.22.82 exe参数 ...

  10. HTML5拍照、摄像机功能实战

    HTML5拍照.摄像机功能实战 苏格团队 作者:Tomey 开篇 最近在做一个chrome app的云相机应用,应用包括拍照.摄像.保存照片视频.上传文件等等核心功能,其中涉及到很多HTML5对媒体流 ...