小编gre*_*reg的帖子

为什么Ruby不支持方法重载?

而不是支持方法重载Ruby覆盖现有方法.任何人都可以解释为什么语言是这样设计的?

ruby

142
推荐指数
5
解决办法
4万
查看次数

关键字列表有什么好处?

在灵丹妙药中我们有地图:

> map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"}
> map.a                             # = "one"
> map[:a]                           # = "one"
Run Code Online (Sandbox Code Playgroud)

我们还有关键字列表:

> kl = [a: "one", b: "two"]       # = [a: "one", b: "two"]
> kl2 = [{:a, "one"},{:b, "two"}] # = [a: "one", b: "two"]
> kl == kl2                       # = true
> kl[:a]                          # = "one"
> kl.a                            # = ** (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

两个为什么?

句法?是因为关键字列表具有更灵活的语法,允许它们被定义为没有卷曲,甚至没有括号作为函数调用的最后一个参数?那为什么不给这个语法糖吗?

重复密钥?是因为关键字列表可以有重复的键吗?为什么要同时使用Map样式访问和重复键?

性能?是因为关键字列表有更好的表现吗?那为什么要有地图?并且不应该通过键查找成员比使用元组列表更高效吗?

JS Array和Ruby Hash一样外观? …

elixir

101
推荐指数
2
解决办法
8913
查看次数

什么是"pin"运算符,Elixir变量是否可变?

目前正试图了解Elixir中的"^"运算符.来自网站:

当没有兴趣重新绑定变量而是匹配匹配之前的值时,可以使用pin运算符^:

来源 - http://elixir-lang.org/getting_started/4.html

考虑到这一点,您可以将新值附加到符号,如下所示:

iex> x = 1  # Outputs "1"
iex> x = 2  # Outputs "2"
Run Code Online (Sandbox Code Playgroud)

我也可以这样做:

iex> x = x + 1  # Outputs "3"!
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题是; Elixir变量是否可变? 看起来确实如此......在函数式编程语言中,这应该是不可能的?

所以现在我们来到"^"运算符......

iex> x = 1  # Outputs "1"
iex> x = 2  # Outputs "2"
iex> x = 1  # Outputs "1"
iex> ^x = 2 # "MatchError"
iex> ^x = 1  # Outputs "1"
Run Code Online (Sandbox Code Playgroud)

我认为"^"的效果是将"x"锁定到绑定到它的最后一个值.这就是它的全部吗?为什么不确保所有'匹配'/赋值都像Erlang本身一样不可变?

我刚刚习惯了......

erlang functional-programming immutability elixir variable-assignment

40
推荐指数
2
解决办法
5646
查看次数

客户端断开连接后的服务器清理

有没有办法通过刷新或导航离开页面来检测客户端何时断开与流星服务器的连接,以便服务器可以尝试进行一些清理?

javascript meteor

20
推荐指数
2
解决办法
5848
查看次数

Haskell,了解euler#3的解决方案

我最近开始学习一个haskell并且度过了非常愉快的时光.我一直在解决一些项目Euler问题,以掌握语法,并一直在审查http://www.haskell.org/haskellwiki/Euler_problems/1_to_10作为学习工具发布的解决方案.虽然我发现自己无法绕过针对问题#3发布的解决方案:

-- Find the largest prime factor of 317584931803. 

primes = 2 : filter ((==1) . length . primeFactors) [3,5..]

primeFactors n = factor n primes
  where
    factor n (p:ps) 
        | p*p > n        = [n]
        | n `mod` p == 0 = p : factor (n `div` p) (p:ps)
        | otherwise      = factor n ps

problem_3 = last (primeFactors 317584931803)
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我的生活是如何运作的.primes并且primeFactors似乎在互相打电话来建立他们自己的清单并试图跟随它腌制我的大脑.任何人都知道关于这个解决方案的好博客文章,或者想在这里写一个关于它的解释?

haskell

16
推荐指数
2
解决办法
950
查看次数

如何在没有javascript的情况下从表单中修补或删除

我正在凤凰城写一个简单的crud应用程序.如何在不使用javascript的情况下从表单提交PATCH和DELETE请求?

phoenix-framework

7
推荐指数
1
解决办法
1698
查看次数

Qt/win:showMaximized()在无框窗口上重叠任务栏

我正在构建一个具有自己的自定义chrome的应用程序.我通过设置标志关闭了默认窗口边框:

this->setWindowFlags(Qt::FramelessWindowHint);
Run Code Online (Sandbox Code Playgroud)

设置此标志并关闭默认窗口边框后,任何调用:

this->showMaximized();
Run Code Online (Sandbox Code Playgroud)

导致占据整个屏幕的窗口,与任务栏重叠.对于我应该调用的这个或另一个方法而不是showMaximized(),是否有共同的工作?

WIN7/Qt4.6

qt qt4

6
推荐指数
2
解决办法
3954
查看次数

flex 4:自定义css值

是否有任何方法可以为组件创建自定义css值并使其可用于组件正在使用的外观类?例如,如果我在css文件中定义它:

s|Panel{
  skinClass: ClassReference("PanelSkin");
  myCustomValue: #CCCCFF;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法myCustomValue提供PanelSkin

css apache-flex skinning flex4

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

rails 3路线:不同的模型自动路线

所以我有一个名为Photoset的模型类和一个名为Sets的控制器.我有资源:除了从模型实例生成路径之外,设置为所有事情工作.例如,如果我使用:

<%= form_for(@photoset) do |f| %>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

 no route matches {:controller=>"sets"}
Run Code Online (Sandbox Code Playgroud)

最终我希望所有的uris都是.../sets/...(控制器名称)而不是.../photosets/...(型号名称)

有没有办法做到这一点,仍然可以使用助手?

--EDIT--继承 我的佣金路线输出:

    sets GET    /sets(.:format)          {:controller=>"sets", :action=>"index"}
         POST   /sets(.:format)          {:controller=>"sets", :action=>"create"}
 new_set GET    /sets/new(.:format)      {:controller=>"sets", :action=>"new"}
edit_set GET    /sets/:id/edit(.:format) {:controller=>"sets", :action=>"edit"}
     set GET    /sets/:id(.:format)      {:controller=>"sets", :action=>"show"}
         PUT    /sets/:id(.:format)      {:controller=>"sets", :action=>"update"}
         DELETE /sets/:id(.:format)      {:controller=>"sets", :action=>"destroy"}
Run Code Online (Sandbox Code Playgroud)

这一切都只是花花公子,问题是当我尝试从模型的实例构建一个表单.我知道rails无法知道我试图将Photoset模型直接与Set控制器绑定,但我不知道如何指定它.

routes ruby-on-rails

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

在unity3d中使用LitJson

2个问题.

1)在Javascript中编写脚本时是否可以按原样使用LitJson库?这是一个关于能够在javascript源代码中使用c#source的一般问题.

2)我是c#dev的新手.我似乎无法让LitJson启动并运行.以下代码抛出此错误:An object reference is required to access non-static memberLitJson.JsonReader.Read()'`

using UnityEngine;
using System.Collections;

public class Loadr : MonoBehaviour {
string url= "http://developer.echonest.com/api/v4/artist/images?api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=0&license=unknown";
void  Start (){
    WWW www = new WWW(url);
    print(www.text);
    Object a = LitJson.JsonReader.Read(www.text);
    print(a.response.status);

    }

}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

c# json unity-game-engine litjson

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