我正在尝试从网站下载视频.不幸的是,它们将它作为f4f类型的"分数"流式传输,而我常用的程序"Download Helper"(Firefox的扩展名)只是为我提供了一个无穷无尽且不断增长的片段列表.
那么有什么好的节目吗?
我想最好是下载器是浏览器的扩展(Firefox或Chrome).如果两个功能(下载和"拼接")都在同一个程序(浏览器扩展名)中,那将会很棒.
如何添加新项目 - Workspace openLabel:'Workspace' - 到Pharo 4.0的World菜单?(我能说什么......我更喜欢Workspace而不是新的东西.:-)
我在浏览器中查看了几个与菜单相关的项目,但实际上并不是它的正面或反面.我也试图找到菜单的存储位置(它必须在某个地方,对吗?),但找不到它.
另外,我将如何将其添加到World-menu的现有子菜单之一,如何创建新的子菜单(在World-menu中)并将其添加到那里?
当谈到Squeak Smalltalk时,我有点新手,所以我可能做错了什么或者对Squeak应该如何工作做出错误的假设.不过,我想知道我哪里出错了......
我试图让类Blower派生自Array.Blower基本上是一个Array,但带有一个名为index的附加实例变量和一些方法.我认为初始化方法会在我创建一个新对象时自动运行,并且它会初始化数组和索引变量,但这似乎不会发生.如果我稍后"手动"初始化,它会按预期工作.
Array variableSubclass: #Blower
instanceVariableNames: 'index'
(...)
Blower >> initialize
super initialize.
1 to: self size do: [ :ix | self at: ix put: ix ].
self shuffle.
index := 1.
Run Code Online (Sandbox Code Playgroud)
如果我在工作区中执行以下操作:
blower := Blower new: 10.
blower inspect.
检查窗口显示(不是我的预期):
\#( nil nil nil nil nil nil nil nil nil nil )
index: nil
如果我手动运行初始化,Inspect-window是正确的:
blower initialize.
\#( 6 4 1 10 2 8 3 ... )
index: nil
Run Code Online (Sandbox Code Playgroud)
那么为什么在创建Blower并正确设置时不会初始化运行?反正有没有自动化,所以它发生在创作?IE浏览器.初始化工作?
我正在玩Pharo,并想提出一个自定义的错误/异常/东西,但我不知道如何.
我浏览了"Pharo by Example"和"Deep into Pharo"的相关章节(我认为); 但无法对它做出正面或反面 - 它似乎高于我需要的水平......
我有一个变量的setter,如果输入不是Integer,我想提出一个错误/异常:
MyClass >> someVariable: anInteger
anInteger isInteger
ifFalse: [ self SomehowProtestLoadly - the part I don't know how to do ].
someVariable := anInteger
只是流产或退出就足够了......但是如果可能的话,我想用更多的"耀斑"来做这件事 - 并且以更加解释的方式......
让我说我在Pharo Smalltalk中创建了一个MyClass类......
如果我在Workspace中写道:
MyClass新.
并选择print-it(Ctrl-P),我得到:
一个MyClass
通过对MyClass的printOn:方法进行一些修改,我可以获得更多,例如:
一个值为5的MyClass
+++
所以我的问题是......我怎么能做一个测试(TestCase类的实例)来检查MyObject的文本表示- 如果我做了"MyObject new"和Print-It,我会得到的是它的假设成为?
我如何得到文本表示,以便我可以根据它应该是什么来检查字符串常量,当我在我的测试中执行自我 断言:相等:(或类似的东西)时?
例如,使用我的cutomized printOn:方法后,它看起来像
一个值为5的MyClass
对不起这样一个新手问题,但有...