小编asy*_*ric的帖子

__proto__和Javascript中的继承

我已经研究了几天的javascript继承,尽管我已经取得了很大的进步,但还有一些我还不太了解的东西.

例如,我觉得这种行为很混乱:

var Employee = function Employee() { this.company = 'xyz'; };
var Manager = function Manager() { this.wage = 'high'; };

var m = new Manager();

m; // { "wage": "high", __proto__ : Manager } -- no problems so far.

Manager.prototype = new Employee();

var n = new Manager;

m.company; // undefined
n.company; // "xyz"
Run Code Online (Sandbox Code Playgroud)

m的__proto__属性指向的对象是不Manager的当前原型.这有点违反直觉,因为:

即使在创建对象后将对象添加到其原型中,对象也会继承属性.

摘自JavaScript:The Definitive Guide,第5版,作者:David Flanagan

这种行为也不能适用于上述案例吗?

任何人都可以澄清吗?

javascript inheritance prototype

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

自定义Mylyn Context UI?

在Mylyn中,如果激活任务并使用上下文UI功能,则包浏览器将显示属于此任务上下文的类以及您所在的方法.

是否可以自定义/配置Mylyn Context UI:

  • 仅显示班级名称
  • 不要深入到课堂上
  • 并且还显示方法?

对我来说,如果过滤的包浏览器视图也包含方法,那就不方便了,如果包浏览器中可见的上下文仅显示包和类名就足够了.

谢谢.

eclipse mylyn

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

在Rails中的模块中定义自定义异常

我已经创建了一个自定义模块(目前只定义了一个新的Exception类),并将其放在下面 lib/lib_th.rb

module LibTH
    module Error
        IDNotFound = Class.new
    end
end
Run Code Online (Sandbox Code Playgroud)

我不需要在我的代码中要求/包含模块,因为它应该自动加载,因为它遵循传统的命名规则.

但是当我尝试IDNotFound在我的代码中的某个地方引发异常时:

res.size == 0 ? raise LibTH::Error::IDNotFound : res
Run Code Online (Sandbox Code Playgroud)

我得到了以下错误:

SyntaxError (/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected tCONSTANT, expecting kDO or '{' or '('
  res.size == 0 ? raise LibTH::Error::IDNotFound : res
                             ^
/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected ':'
  res.size == 0 ? raise LibTH::Error::IDNotFound : res
                                                  ^):
app/controllers/treasure_hunts_controller.rb:50:in `show'
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我在尝试引发异常时没有遇到任何问题script/console:

>> raise LibTH::Error::IDNotFound
LibTH::Error::IDNotFound: LibTH::Error::IDNotFound
from (irb):70
Run Code Online (Sandbox Code Playgroud)

谢谢!

module ruby-on-rails exception

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

设置MySQL主 - 主复制

我目前有一个主服务器,并希望添加另一个主服务器进行故障转移.

在主服务器上,我已将以下内容添加到"my.ini"

server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
log_bin=mysql-bin
log_error=mysql-bin.err
binlog_do_db=1
binlog_do_db=2
binlog_do_db=3
binlog_do_db=4
Run Code Online (Sandbox Code Playgroud)

添加后:

master-host = [IP]
master-user = [usernameslaveuser]
master-password = [password]
master-connect-retry = 30
Run Code Online (Sandbox Code Playgroud)

mysql服务器不再启动...所以我决定先让辅助服务器正常工作.

问题2:在新服务器上,我从主数据库的"data"/ mysql目录复制了我的用户文件.我还用MySQL工作台导入了所有数据库.

然后我把它添加到"my.ini":

server-id=2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2

master-host = [IP]
master-user = [usernameslaveuser]
master-password = [password]
master-connect-retry = 30
log_bin=mysql-bin
log_error=mysql-bin.err
binlog_do_db=1
binlog_do_db=2
binlog_do_db=3
binlog_do_db=4
Run Code Online (Sandbox Code Playgroud)

服务器启动正常,所以我决定在主服务器上的复制数据库中添加一个表,但是没有复制到辅助服务器的更改...

我google了一下,发现我必须在mysql命令行中运行一些命令才能使复制工作.但是,当我在辅助服务器上打开它时,它无法启动...在命令提示符下打开它时,它显示mysql.exe:未知变量'server-id = 2"

两台服务器都运行Windows Server 2012 R2并安装了MySQL 5.6.15 64位.有人可以指导我真实的最后一部分设置吗?

mysql replication database-replication mysql-5.6

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

在JavaScript正则表达式中使用前瞻匹配可选组

我正在尝试用正则表达式解决字符串匹配问题.我需要匹配此表单的网址:

http://soundcloud.com/okapi23/dont-turn-your-back/
Run Code Online (Sandbox Code Playgroud)

我需要"拒绝"此表单的网址:

http://soundcloud.com/okapi23/sets/happily-reversed/
Run Code Online (Sandbox Code Playgroud)

尾随'/'显然是可选的.

所以基本上:

  • 在主机名之后,可以有2或3个组,如果在第二个组中等于 "sets",则正则表达式不应该匹配.
  • "sets"可以包含在URL中的任何其他位置
  • "集合"需要完全匹配

到目前为止我提出的是http(s)?://(www\.)?soundcloud\.com/.+/(?!sets)\b(/.+)?失败的.

有什么建议?是否有任何库可以简化任务(例如,使尾部斜杠可选)?

javascript regex regex-greedy regex-lookarounds

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

在Elixir中打印流

我正在玩Elixir,我偶然发现了让我困惑的事情.

我定义了这个匿名函数,它匹配以数字开头的字符串:

digits = &(&1 =~ ~r/^\d/)
Run Code Online (Sandbox Code Playgroud)

如果我尝试在a中使用此函数Stream.reject/2,然后打印内容Stream,我会收到错误:

File.stream!("foobar") |> Stream.reject digits |> Enum.to_list

** (FunctionClauseError) no function clause matching in Enumerable.Function.reduce/3
(elixir) lib/enum.ex:2641: Enumerable.Function.reduce(#Function<6.54118792/1 in :erl_eval.expr/5>, {:cont, []}, #Function<7.8839654/2 in Enum.reduce/3>)
(elixir) lib/enum.ex:1400: Enum.reduce/3
(elixir) lib/enum.ex:2130: Enum.to_list/1
Run Code Online (Sandbox Code Playgroud)

然后再次:

File.stream!("foobar") |> Stream.reject digits |> Enum.each &IO.write/1

** (FunctionClauseError) no function clause matching in Enumerable.Function.reduce/3
(elixir) lib/enum.ex:2641: Enumerable.Function.reduce(#Function<6.54118792/1 in :erl_eval.expr/5>, {:cont, nil}, #Function<7.8839654/2 in Enum.reduce/3>)
(elixir) lib/enum.ex:1400: Enum.reduce/3
(elixir) lib/enum.ex:584: Enum.each/2
Run Code Online (Sandbox Code Playgroud)

似乎在前一种情况下,{ :cont, []}元组正在产生问题,而在后一种情况下,它是{ …

elixir

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

如何在rails job中访问rails helper方法current_user?

我在Rails作业中有以下代码:

class MessageBroadcastJob < ApplicationJob
  queue_as :default

  def perform(message)
   ActionCable.server.broadcast "room_channel", message: render_message(message),msg: message, user: current_user
  end

  private
  def render_message(message)
    ApplicationController.renderer.render(partial: 'messages/message', locals: { message: message})
   end
end
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我想传递current_user,但我无法访问设计Rails帮助方法.

ruby-on-rails devise

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