是什么导致我的代码错误?
$query = $this->db->query("SELECT * FROM tour_foreign ORDER BY id desc");
$data = array();
foreach ($query->result() as $row)
$data[] = array('guide' => $row->guide);
echo json_decode($data); //Line 167
Run Code Online (Sandbox Code Playgroud)
错误:
erro: json_decode() expects parameter 1 to be string, array given: Line Number: 167
Run Code Online (Sandbox Code Playgroud)
更新:
如果使用json_encode,而不是json_decode我的输出是这样的:
[{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":["\u0633\u06c??c\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":null}]
Run Code Online (Sandbox Code Playgroud)
他们是波斯语.
我有一个类,Duck有一个initialize方法,产生一个块:
class Duck
def initialize()
if block_given?
yield(self)
end
end
end
Run Code Online (Sandbox Code Playgroud)
和一个TalkingDuck在程序员初始化时问候程序的类.
class TalkingDuck < Duck
def initialize()
super()
puts 'I am a duck'
end
end
Run Code Online (Sandbox Code Playgroud)
当我TalkingDuck.new用块调用构造函数时,我不希望执行此块.这个:
TalkingDuck.new { puts 'Quack' }
Run Code Online (Sandbox Code Playgroud)
应该只打印I am a duck,但不能打印Quack.如何防止块被执行?
我有一些我怀疑被混淆的 Lua 代码。我该如何去混淆它?
我相信代码被混淆了,因为它看起来与普通的 Lua 代码非常不同,但我知道它是有效的 Lua 代码,因为 Lua 解释器仍然会编译和运行代码。
我对去混淆代码有合法的兴趣,并且不打算违背作者的意愿分发它或修改它以规避任何 DRM 机制。
在过去的一周中,我一直在和Lua一起玩,最终我写出了这种平和的代码。我发现动态创建“继承”其他功能的新功能非常有用,因此程序员必须为其命名。我的问题是:
这个叫什么?
有一个更好的方法吗?(遍历数据结构并创建“改进”现有功能的附加功能)
D = {
name = {
value = nil,
offset = 0,
update = function (self)
self.value = "Berlin"
end,
},
}
--Dynamic function definition
for i in pairs(D) do
D[i].upAndWrite = function(self)
self:update()
print("upAndWrite was here")
end
end
print(D.name.value)
D.name:upAndWrite()
print(D.name.value)
Run Code Online (Sandbox Code Playgroud)
结果:
nil
upAndWrite was here
Berlin
Run Code Online (Sandbox Code Playgroud) 如何在可选的 lua 函数中传递表。
例如
function test(options)
local a = options.a
end
Run Code Online (Sandbox Code Playgroud)
这个功能应该同时工作
test(options)
Run Code Online (Sandbox Code Playgroud)
和
test()
Run Code Online (Sandbox Code Playgroud) Ruby中的Lambdas(和procs)只是带有call方法的对象,就像任何OO语言一样,函数式编程作为事后的想法粘在上面.还有:
lambda.(<args>)lambda[<args>]作为语法糖lambda.call().
Lua允许一个__callmeta方法,它允许我调用一个对象,在后台,参数(和表)被传递给一个真正的函数来完成真正的魔术.
Lambdas不喜欢处理真正的函数,因为它们被调用[]或.()代替().为什么不添加()可以重载的运算符?然后object()将被转换为意味着object.(),同样的与+,||或任何其他操作.
拥有允许直接调用lambda的语法糖是不是有意义?这更像是设计哲学而非技术限制吗?
如果一个方法返回一个lambda,那个方法后跟()的意思是什么?它只调用方法,还是调用返回的lambda?
method()意味着呼叫method.如果该表达式返回一个lambda,method()()则会调用所述lambda.相反的情况根本就没有意义.
如果有一个名为foo的方法,以及一个名为foo的可调用对象,那么foo()是什么意思?
答:如果foo是一个方法和一个变量,你期望foo评估什么?变量.Ruby已经通过简单地选择更直观的两个选项来处理这种模糊性.因此,如果有方法foo,foo()应该调用该方法.如果foo在同一范围内存在可调用方法,则会被实际函数遮蔽.
我正在尝试编写一个函数来创建 CNN 模型。每当我运行脚本时,我都会收到以下错误:
lua:15: '[' 附近有意外的符号
require('torch')
require('nn')
function CeateNvidiaModel()
--The Nvidia model
--Input dimensions
local n_channels = 3
local height = 66
local width = 200
local nvidia_model = nn.Sequential();
--nvida_model:add(nn.Normalize()
--Convolutional Layers
nvidia_model:add(nn.SpatialConvolution(n_channels, 24, 5, 5, [2], [2]))
nvidia_model:add(nn.ELU(true))
nvidia_model:add(nn.SpatialConvolution(24, 36, 5, 5, [2], [2]))
nvidia_model:add(nn.ELU(true))
nvidia_model:add(nn.SpatialConvolution(36, 48, 5, 5, [2], [2]))
nvidia_model:add(nn.ELU(true))
nvidia_model:add(nn.SpatialConvolution(48, 64, 3, 3))
nvidia_model:add(nn.ELU(true))
nvidia_model:add(nn.SpatialConvolution(64, 64, 3, 3))
nvidia_model:add(nn.ELU(true))
-- Flatten Layer
nvidia_model:add(nn.Reshape(1164))
-- FC Layers
nvida_model:add(nn.Linear(1164, 100))
nvidia_model:add(nn.ELU(true))
nvida_model:add(nn.Linear(100, 50))
nvidia_model:add(nn.ELU(true))
nvida_model:add(nn.Linear(50, 10)) …Run Code Online (Sandbox Code Playgroud)