小编rip*_*pat的帖子

定义函数参数的默认值

在Lua wiki中,我找到了一种为缺少参数定义默认值的方法:

function myfunction(a,b,c)
    b = b or 7
    c = c or 5
    print (a,b,c)
end
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法吗?PHP风格myfunction (a,b=7,c=5)似乎不起作用.并不是Lua方式不起作用,我只是想知道这是否是唯一的方法.

lua function

82
推荐指数
5
解决办法
5万
查看次数

lua中的https请求

我正在尝试使用lua脚本在启用SSL的服务器上检索页面.需要注意的是,服务器具有自签名证书.由受信任的CA颁发的证书没有问题.

local https = require("socket.http")
local resp = {}
local r, c, h, s = https.request{
    url = "https://my-server:443/example.php",
    sink = ltn12.sink.table(resp),
    protocol = "tlsv1"
}
Run Code Online (Sandbox Code Playgroud)

服务器返回:

错误请求您的浏览器发送了此服务器无法理解的请求.原因:您正在向支持SSL的服务器端口说明HTTP.请使用HTTPS方案访问此URL.

在服务器端,该请求在Apache ssl_access.log中生成此条目

192.168.0.150 - - [27/Nov/2011:16:32:07 +0100] "GET /" 400 529 "-" "-"
Run Code Online (Sandbox Code Playgroud)

此外,tcpdump显示在SYN-ACK握手之后,没有SSL 257 Client Hello发送.使用我的浏览器或wget使用相同的URL工作正常.

lua luasocket

13
推荐指数
2
解决办法
3万
查看次数

显示带有转义颜色代码的文件 - 从bootlog守护程序启动消息

我有一个包含颜色代码的文件:

Fri May 25 17:13:04 2012: [....] Starting MTA: exim4^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
Fri May 25 17:13:05 2012: [....] Loading cpufreq kernel  modules...^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0cdone (acpi-cpufreq).
Run Code Online (Sandbox Code Playgroud)

如何在linux终端上显示它的颜色?

linux terminal ubuntu debian

11
推荐指数
3
解决办法
9069
查看次数

lua http套接字超时

LuaSocket HTTP模块文档说可以在HTTP连接上设置超时:

可以设置以下常量来控制HTTP模块的默认行为:

PORT:用于连接的默认端口; PROXY:用于连接的默认代理; TIMEOUT:设置所有I/O操作的超时; USERAGENT:向服务器报告的默认用户代理. http://w3.impa.br/~diego/software/luasocket/http.htm

如何在lua脚本中设置这些常量?

sockets lua luasocket

7
推荐指数
2
解决办法
7235
查看次数

Gnuplot网格格式xtics mxtics

如何为主网格(xtics,ytics)定义一种格式,为次要抽搐(mxtics和mytics)定义另一种格式?

我试过了:

set style line 100 lt 1 lc rgb "gray" lw 2
set style line 101 lt 1 lc rgb "gray" lw 1
set grid xtics ytics ls 100
set grid mxtics mytics ls 101
Run Code Online (Sandbox Code Playgroud)

但这需要为所有网格定义最后一个lw(1).

gnuplot

7
推荐指数
4
解决办法
3万
查看次数

退出多处理脚本

当目标函数抛出错误时,我试图退出多处理脚本,但父进程没有退出,而是挂起。

这是我用来复制问题的测试脚本:

#!/usr/bin/python3.5

import time, multiprocessing as mp

def myWait(wait, resultQueue):
    startedAt = time.strftime("%H:%M:%S", time.localtime())
    time.sleep(wait)
    endedAt = time.strftime("%H:%M:%S", time.localtime())
    name = mp.current_process().name
    resultQueue.put((name, wait, startedAt, endedAt))

# queue initialisation
resultQueue = mp.Queue()

# process creation arg: (process number, sleep time, queue)
proc =  [
    mp.Process(target=myWait, name = ' _One_', args=(2, resultQueue,)),
    mp.Process(target=myWait, name = ' _Two_', args=(2, resultQueue,))
    ]

# starting processes
for p in proc:
    p.start()

for p in proc:
    p.join()

# print results
results = {}
for …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-3.5

6
推荐指数
1
解决办法
2602
查看次数

在 Go 中连接 Google Calendar API 的凭据

我正在将用于访问 Google 日历的 PHP 应用程序转换为 Go。我是按照这个一步步开始的。

一切都很顺利,但是当我运行时quickstart.go,出现以下错误:

无法将客户端机密文件解析为配置:oauth2/google:client_credentials.json 退出状态 1 中缺少重定向 URL

其内容为client_secret.json

{  
   "installed":{  
      "client_id":"***********content.com",
      "project_id":"*******",
      "auth_uri":"https://accounts.google.com/o/oauth2/auth",
      "token_uri":"https://accounts.google.com/o/oauth2/token",
      "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"
   }
}
Run Code Online (Sandbox Code Playgroud)

client_secret.json文件位于我的 GOPATH 的根目录,按照分步说明进行操作

我已经有一个OAuth 2.0 client ID适用于我的 PHP 应用程序,它在 PHP 中运行得很好。我只想在新的 Go 应用程序中使用该日历来访问多个用户日历,但是当我下载附加到该 ID 的 json 文件时,出现上述错误。也许quickstart.go不适合这种用途。

有什么提示吗?

google-calendar-api google-api go google-oauth

6
推荐指数
1
解决办法
4828
查看次数

在分隔符上拆分字符串

我有一个字符串first part;second part.我想将它拆分;并返回第二部分.一切正常:

start = mystring:find(';')
result = mystring:sub(start)
Run Code Online (Sandbox Code Playgroud)

但我希望能在一条线上做到这一点:

result = mystring:sub(mystring:find(';'))
Run Code Online (Sandbox Code Playgroud)

它不会抛出错误,但它不会返回预期的结果.这不是一个大问题,因为它在两行代码上工作正常,但理解为什么它不在oneliner上工作将帮助我更好地理解lua如何工作.

lua

5
推荐指数
1
解决办法
5899
查看次数

Lua http socket评估

我使用lua 5.1和luaSocket 2.0.2-4从Web服务器检索页面.我首先检查服务器是否正在响应,然后将Web服务器响应分配给lua变量.

local mysocket = require("socket.http")
if mysocket.request(URL) == nil then
    print('The server is unreachable on:\n'..URL)
    return
end
local response, httpCode, header = mysocket.request(URL)
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,但请求执行两次.我想知道我是否可以做某事(显然不起作用):

local mysocket = require("socket.http")
if (local response, httpCode, header = mysocket.request(URL)) == nil then
    print('The server is unreachable on:\n'..URL)
    return
end
Run Code Online (Sandbox Code Playgroud)

lua luasocket

1
推荐指数
1
解决办法
2838
查看次数