小编Dan*_*ger的帖子

javascript函数之间的循环引用

如何定义一对在Javascript中相互调用的函数,以便JS-lint不会抱怨在定义之前使用'factorial'?

function factorial1(n) { return factorial(n); }
function factorial(n) { return n === 0 ? 1 : n * factorial1(n - 1); }
Run Code Online (Sandbox Code Playgroud)

似乎没有满足JSlint的有效排序.(一个可以嵌入另一个,但这对于所有相互调用的函数集合来说都是一场噩梦).

当然这是由语言处理的吗?这只是JSlint中的一个错误吗?(这个问题肯定已在某个地方得到解答,但我找不到了!)

javascript

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

鸭打字麻烦。鸭打字测试“我喜欢一个列表”

使用情况末尾添加

我经常想对像列表这样的抽象对象进行操作。例如

def list_ish(thing):
    for i in xrange(0,len(thing)):
        print thing[i]
Run Code Online (Sandbox Code Playgroud)

现在,如果thing是一个列表,这将是适当的,但是如果thing是一个dict,则将失败。pythonic为什么问“你的行为像列表吗?”

注意:

hasattr('__getitem__') and not hasattr('keys')
Run Code Online (Sandbox Code Playgroud)

这将适用于所有我能想到的情况,但是我不喜欢否定地定义鸭子类型,因为我希望在某些情况下它不会被捕获。

我真正要问的是
“嘿,您以我期望列表执行的方式操作整数索引吗?” 例如

  thing[i],  thing[4:7] = [...],   etc.
Run Code Online (Sandbox Code Playgroud)

注意:我不想简单地在大型try / except内部执行我的操作,因为它们具有破坏性。在这里尝试失败不是很酷。

使用上下文-“点列表”是一个类似列表的事物,其中包含类似dict的事物作为其元素。-“矩阵”是一个类似列表的事物,其中包含类似列表的事物

-我有一个函数库,可以在点列表上运行,也可以类似地在矩阵之类的东西上运行。

-例如,从用户的角度来看,破坏性操作(例如“类似电子表格”的操作“ column-slice”)可以类似的方式在矩阵对象和点列表对象上进行操作-生成的结果类似于原始列,但只有指定的列。

-因为此特定操作具有破坏性,所以好像对象是矩阵一样进行操作,只是通过操作找出部分方式,这并不是一件很酷的事情,它实际上是一个点列表或不在列表中。

-我希望我的'is_matrix'和'is_point_list'测试是高性能的,因为它们有时会在内部循环中发生。因此,我对仅调查元素零的测试感到满意。

-我更喜欢不涉及构造临时对象的测试,仅用于确定对象的类型,但这也许不是python方式。

总的来说,我发现整只鸭子打字的东西有点混乱,并且充满了错误和缓慢,但是也许我还没有像真正的Pythonista那样思考

乐于喝更多的助眠药...

python list

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

捆绑安装在rails中的“ letter-opener” gem失败

我正在尝试使用第104集(以及网络上的许多其他地方)中所述的Ryan Bates的“ letter-opener” gem。在我发现的每个实例中,似乎用户只是在将他们包含在自己的Gem文件中,传统的红宝石宝石gemsource。当我尝试这样做时,rails找不到宝石。我一定做错了什么,但是呢?

source "http://rubygems.org"
...
gem "letter-opener", group: :development 
Run Code Online (Sandbox Code Playgroud)

然后我输入

$ bundle install
Run Code Online (Sandbox Code Playgroud)

并且我收到以下消息:

正在获取http://rubygems.org/的源索引, 在您的Gemfile中列出的任何gem来源中都找不到gem'letter-opener(> = 0)x86-mingw32'。

谢谢您的帮助!

rubygems ruby-on-rails

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

标签 统计

javascript ×1

list ×1

python ×1

ruby-on-rails ×1

rubygems ×1