小编Krz*_*nde的帖子

是什么让这个功能运行得慢得多?

我一直在尝试进行实验,看看函数中的局部变量是否存储在堆栈中.

所以我写了一点性能测试

function test(fn, times){
    var i = times;
    var t = Date.now()
    while(i--){
        fn()
    }
    return Date.now() - t;
} 
ene
function straight(){
    var a = 1
    var b = 2
    var c = 3
    var d = 4
    var e = 5
    a = a * 5
    b = Math.pow(b, 10)
    c = Math.pow(c, 11)
    d = Math.pow(d, 12)
    e = Math.pow(e, 25)
}
function inversed(){
    var a = 1
    var b = 2
    var c = 3 …
Run Code Online (Sandbox Code Playgroud)

javascript performance v8

64
推荐指数
2
解决办法
5497
查看次数

"@type t ::%__ MODULE __ {}"在Elixir中意味着什么

在std Elixir包中有很多行

@type t :: %__MODULE__{}
Run Code Online (Sandbox Code Playgroud)

我知道@type注释用于注释注释中类型的短符号@spec,但是这一行用于诸如uri.ex之类的模块中,它根本没有@spec注释.

这个注释的目的是什么?

elixir

18
推荐指数
1
解决办法
3535
查看次数

Elixir的模块是原子吗?

我正在努力了解Elixir中的模块.因为在Erlang中他们只是原子,但在Elixir中,原子始于:人物.所以我在iex中检查了这些表达式:

iex(16)> is_atom(List) 
true
iex(17)> is_atom(:List)
true
iex(18)> List == :List
false
iex(19)> a = List
List
iex(20)> b = :List
:List
Run Code Online (Sandbox Code Playgroud)

所以,很明显,这两个List:List的原子.但是,它如何在Erlang互操作层上运行?因为Erlang ok等于Elixir的:ok.
那么这两个(List:List)中的哪一个'List'在Erlang中是相同的?

erlang elixir

12
推荐指数
1
解决办法
1886
查看次数

"无法开始测试交易,因为我们已经在一个内部"

我遵循了本教程,我的简单测试总是因为这个错误而失败

1) test /index returns a list of contacts (WorldNote.ChatsControllerTest)                                             
     test/controllers/chats_controller_test.exs:16                                                                      
     ** (RuntimeError) cannot begin test transaction because we are already inside one                                  
     stacktrace:                                                                                                        
       (ecto) lib/ecto/adapters/sql.ex:321: anonymous fn/6 in Ecto.Adapters.SQL.start_test_transaction/3                
       (ecto) lib/ecto/adapters/sql.ex:615: Ecto.Adapters.SQL.pool_transaction/4                                        
       (ecto) lib/ecto/adapters/sql.ex:314: Ecto.Adapters.SQL.start_test_transaction/3                                  
       test/controllers/chats_controller_test.exs:9: WorldNote.ChatsControllerTest.__ex_unit_setup_0/1                  
       test/controllers/chats_controller_test.exs:1: WorldNote.ChatsControllerTest.__ex_unit__/2    
Run Code Online (Sandbox Code Playgroud)

代码很简单

defmodule WorldNote.ChatsControllerTest do
  use ExUnit.Case, async: false
  use Plug.Test
  alias WorldNote.Chats
  alias WorldNote.Repo
  alias Ecto.Adapters.SQL

  setup do
    SQL.begin_test_transaction(Repo)

    on_exit fn ->
      SQL.rollback_test_transaction(Repo)
    end
  end

  test "/index returns a list of contacts" do
    contacts_as_json =
      %Chats{fbid: 1234567890, latitude: …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

12
推荐指数
1
解决办法
760
查看次数

Elixir脚本递归加载文件夹中的所有模块

我想在特定文件夹中递归地编译和加载所有模块.我知道我可以用Mix项目做到这一点

iex -S mix run
Run Code Online (Sandbox Code Playgroud)

这将加载lib/目录中的所有文件.

但是,我想在非混合脚本中使用相同的行为 - 如果可能的话,编程方式.有什么像这样的Code.compile_all("directory/")
API吗?

elixir

10
推荐指数
1
解决办法
3368
查看次数

斯卡拉期货回调地狱

我一直在读Scala Futures多次减少回调问题.我有一个代码开始看起来有问题.

val a = Future(Option(Future(Option(10))))

a.map { b =>
  b.map { c =>
    c.map { d =>
      d.map { res =>
        res + 10
      }
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

如何让这段代码更平坦?

//编辑@againstmethod

for{
  b <- a
  c <- b
  d <- c
  res <- d
} yield res + 10
Run Code Online (Sandbox Code Playgroud)

此代码将无法编译

错误:(21,8)类型不匹配; 找到:需要选项[Int]:
scala.concurrent.Future [?] res < - d
^

scala future callback

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

Webstorm或Dart编辑器.哪一个更成熟

一开始我想标记这不是一个常规的IDE vs IDE问题,因为Dart仍处于初期阶段,而且不是哪个更好,而是哪个更新.

目前只有两个不错的Dart IDE.Dart编辑器和WebStorm.哪一个有更好的Dart开发功能?

我知道Dart编辑器是由负责Dart语言的人制作的,但JetBrains(WebStorm)更加成熟和经验丰富.

任何人都可以列出今天这些IDE之间的差异吗?

webstorm dart dart-editor

5
推荐指数
2
解决办法
946
查看次数

可怕的冗余凤凰控制器

我正在做我的第一个凤凰应用程序,并试图做新的/ 2控制器.我写的代码是

def new(conn, %{"fbid" => fbid, "latitude" => lat, "longitude" => lng, "content" => content}) do
    {fbid, _} = Integer.parse(fbid);
    {lat, _} = Float.parse(lat);
    {lng, _} = Float.parse(lng);

    chats = %Chat{:fbid => fbid, :latitude => lat, :longitude => lng, :content => content}
      |> Repo.insert
      |> List.wrap
      |> Poison.encode!
    render conn, chats: chats
end
Run Code Online (Sandbox Code Playgroud)

但它看起来非常多余,我找不到更好的方法来做到这一点.我已经读过没有办法将Map转换为Struct,并且由于params的类型不同,所以它无论如何都无法工作.

那么有人能告诉我一些神奇的方式来映射它吗?

elixir ecto phoenix-framework

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

Elixir 的 System.cmd 是否阻塞

我想制作一个自动使用 github 存储库的系统

System.cmd("git",["pull", link])
Run Code Online (Sandbox Code Playgroud)

此命令是否阻塞?如果我在许多演员中同时启动它,我是否总是能够获得与演员一样多的拉动(或至少系统的套接字限制)?

如果没有,无论如何要实现它?

concurrency elixir

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

Phoenix EXRM发布Websockets无法正常工作

我试图用EXRM发布我的应用程序.除了无法启动的WebSockets之外,整个应用程序正在运行

这是浏览器中的错误(Chrome)

与'ws:// localhost:4001/socket/websocket?token = undefined'的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:403

似乎变量token可能是个问题.一开始Mix phoenix.server就一切顺利.但随着命令发布:

$ mix deps.get
$ mix compile
$ MIX_ENV=prod mix digest
$ MIX_ENV=prod mix release
$ ./rel/project/bin/project
Run Code Online (Sandbox Code Playgroud)

可能是关于我的一些错过的步骤或凤凰相关的问题.

elixir exrm phoenix-framework

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