小编Cod*_*rer的帖子

在引用JavaScript父对象时,如何避免"变量可能尚未初始化"?

我知道有很多"如何避免这个警告"的问题,但看起来我的第一个特定于JavaScript.在这种情况下,我想在我自己的声明中引用我正在初始化的东西,如下所示:

var foo = new Foo({
  bar: new Bar({
    x: function(){
      doStuff(foo);
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

(如果这看起来很熟悉,也许你以前使用过ExtJS - 这就是他们大部分内容的构建方式.)

当我调用时foo.bar.x(),我想指回foo拥有bar调用函数(x)的Bar()的Foo ().这有效,但我的Eclipse警告我"foo可能尚未初始化",引用调用doStuff();- 因为,当引擎第一次看到该行时,我们还没有完成定义foo.当然,x()除非foo构造成功,否则无法调用,但我的风格检查器显然没有想到这一点.

所以我对如何处理这个问题感到很茫然.我应该忽略这个警告吗?有没有办法将它标记为这样,所以我不再收到警告了?我做错了吗?我应该以不同的方式传递我的参考吗?

javascript eclipse warnings

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

我可以在请求处理程序之外获取Rack服务的基本URL吗?

我希望能够从我的机器人初始化代码中检索我的Web应用程序的基本URL config.ru.有点像:

puts "Starting up on http://#{ENV['SERVER_NAME']}:#{ENV['SERVER_PORT']}/#{ENV['MOUNT_POINT']}..."
Run Code Online (Sandbox Code Playgroud)

但是我没有找到任何可以从请求处理程序外部获得的内容.显然,我可以这样做:

...
def get
  puts "Got a request for #{ENV['rack.url_scheme']}://#{ENV['HTTP_HOST']}#{ENV['REQUEST_PATH']}"
  ...
Run Code Online (Sandbox Code Playgroud)

因为请求是在那时定义的.但是在我的配置文件的开头,似乎没有定义这些变量.

我可以使用Rack方法来访问这些信息吗?这是在Rack启动完成之前还没有最终确定的情况之一吗?我似乎记得其他框架有一种方法将proc传递给一个方法,一旦环境"准备好"就会执行它.Rack有类似的东西吗?

ruby rack

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

在Jython中,我可以创建一个实现Java接口的内联匿名类吗?

在Java中,我可以说

Thread t = new Thread(){
    public void run(){ // do stuff }
}
Run Code Online (Sandbox Code Playgroud)

(或类似的东西)声明一个内联的匿名类.这对于制作事件处理程序或其他回调类型的东西非常有用,在任何合理的语言中,首先不需要对象拥有它们.

我在Jython中面临同样的问题 - 我想定义一个事件处理程序,但我不想构建一个完整的独立类来执行此操作.

理想情况下,我只能传递一个lambda并完成它,但如果这是可能的,我无法在文档中的任何地方找到它.

java jython anonymous-class

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

从接口名称中查找IP地址

在Linux机器上,通用接口名称看起来像eth0,eth1等.我知道如何使用gethostbyname或类似功能找到至少一个IP地址,但我不知道如何指定哪个命名接口我想要IP地址的.我可以使用ifconfig并解析输出,但是为这些信息进行炮轰似乎......不优雅.

有没有办法将所有接口及其IP地址(以及可能的MAC地址)枚举到集合中?或者至少是某些东西gethostbyinterface("eth0")

linux network-programming

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

是否有"库存"闲置/等待对话框?

我的C#应用​​程序在系统启动时运行,必须等待本地SQL Server实例才能实际执行任何操作.现在,我只是等待服务器响应(我曾经在服务上获得等待句柄,但这不可靠),然后启动应用程序的主对话框.

当然,问题在于,在服务启动之前,用户无法告诉任何事情,而且由于我们使用的硬件可能需要一分钟.所以我想考虑某种"加载/请等待"指标.问题是,我们的项目接近锁定,并且像创建新类一样大的变化会引起很多麻烦 - 修改现有文件(如Program.cs)比创建新文件要少得多.简而言之:在我开始在SQL Server上进行plinking之前,是否有一个非常适合显示(异步,我猜)的.NET类,然后在它开始响应时被删除?

c# dialog winforms

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

如何查看已添加到Maven存储库的javadocs?

我知道我可以使用maven提取工件的javadocs(如果已添加),该工件应以JAR的形式出现(对吗?),然后可以解压缩并浏览。我的问题是,我试图找出一系列工件中的哪个具有我要寻找的特定软件包。我可以下载六个Javadoc软件包,将它们全部解压缩,然后一次打开一个索引文件,但这听起来会很不愉快。

肯定有更好的办法!我注意到Nexus支持Javadoc工件浏览,但显然仅支持Pro版本(我们没有,并且不太可能很快获得)。我宁愿使用GUI解决方案,尽管我愿意满足命令行的要求,但前提是要遵循的要求showmethedocs groupId:artifactId [version]

预计到达时间:为了澄清:我专门在比较不同版本的工件或多个不同但相似的工件(“ foo:core”与“ foo:utils”与“ foo:extra”等)时进行比较确定什么工件确实包含我需要的包/类。也许有更好的方法可以做到,而我问错了问题?如果我将每个工件添加为Maven依赖项并检查Eclipse中的文档,则可以正常工作,但是如果存在20个工件的旧版本,而其中的一个恰好具有我要查找的方法,则可能需要一段时间。

maven-2 javadoc

4
推荐指数
2
解决办法
2466
查看次数

迭代表格单元格,重新使用行跨度值

我有一个简单的 HTML 表,它在一些随机列中使用行跨度。一个例子可能看起来像

 A | B |
---|---| C
 D |   |
---| E |---
 F |   | G
Run Code Online (Sandbox Code Playgroud)

我想迭代这些行,以便将行视为A,B,C, D,E,C, then F,E,G

我想我可能可以拼凑一些非常复杂的东西来cell.index()检查后面的行中的“丢失”列,但我想要一些更优雅的东西......

html javascript html-table

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

在 Angular 服务中频繁使用 BehaviorSubject 是一个危险信号吗?

我正在使用 Angular 编写一个应用程序,并发现自己经常使用这种模式:

@Injectable(...)
export class WidgetRegsitryService {
  private readonly _widgets: BehaviorSubject<Widget[]> = new BehaviorSubject([]);
  public get widgets() { return this._widgets.value; }
  public readonly widgets$ = this._widgets.asObservable();

  public add(widget: Widget) {
    const old = this._widgets.value.slice();
    old.push(widget);
    this._widgets.next(old);
  }
}
Run Code Online (Sandbox Code Playgroud)

许多服务将有 3-5 个或更多这样的公共 getter 和私人支持主题组。它发生得太多了,以至于代码感觉非常冗长和重复。所以:a) 有没有一种干的方式来做到这一点,b) 我在这里滥用 Observables 吗?

observable rxjs typescript angular

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

`git pull` 失败,现有历史记录“无法快进”

我已经阅读了很多有关该主题错误消息的其他问题(“无法快进”),但它们似乎都不适用于我的情况。我创建一个分支 ( git checkout -b issue-215),进行更改,然后在本地提交。我推送更改,然后进行新的更改和另一个本地提交:

* 4b797d2a - (HEAD -> issue-215) 
* 180a7ab5 - (origin/issue-215)
* 863ef01a - (origin/master, origin/HEAD, master)
Run Code Online (Sandbox Code Playgroud)

ETA:根据评论中的要求,输出git branch --all -v

* issue-215                 4b797d2a [ahead 1] 
  ... other branches ...
  master                    863ef01a 
  
  remotes/origin/issue-215  180a7ab5 
  ...other remotes....
  remotes/origin/HEAD       -> origin/master
  remotes/origin/master     863ef01a 

Run Code Online (Sandbox Code Playgroud)

没有新的远程更改,但 VSCode 希望在推送之前先拉取。这就是我收到此错误的地方。因此,为了排除故障,我git pull origin issue-215手动运行并获得以下输出:

$ git pull origin issue-215
From ssh://my.repo/project
 * branch              issue-215  -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
Run Code Online (Sandbox Code Playgroud)

请记住,服务器上没有新的更改,并且从我当前的本地提交返回到远程分支(返回到masterorigin/master)的历史记录是一条直线。我不想合并或变基,我的本地代码已经是我应该拉动的分支的直接子代。 …

git

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

我应该使用默认(Foo),Foo.Empty还是null?

所以C#现在允许你用来default(Foo)获得一个认可的"未填充"/空类的实例 - 我不确定它是否完全相同new Foo().许多库类还实现了一个Foo.Empty属性,该属性返回一个类似的实例.当然,任何参考类型都可以指向null.那真的,有什么区别?什么时候是对还是错?什么更一致,或表现更好?在检查对象在概念上是否"未准备好黄金时间"时,我应该使用哪些测试?不是每个人都有Foo.IsNullOrEmpty().

c# constructor conventions

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