小编Saš*_*jak的帖子

有没有Elixir可以做的事情,Erlang不能,反之亦然?

这个问题是在Beam VM及其提供的功能的背景下,而不是图灵完整语言可以做的一般上下文.我想投入一些时间来学习纯Erlang或Elixir.我得到了两者之间的基本差异,因为宏语,更好的语法和更快的语言开发,我倾向于Elixir.

我的问题是:如果我选择Elixir,我会偶然发现我不能做的事情,但可以在Erlang中做些什么吗?我可以使用Elix的所有OTP内容,所有Erlang库,代码重新加载等吗?

我不是要求两者之间的偏好; 关于语言可能性的事实.优选地来自在生产中使用两者的人.

erlang elixir erlang-otp

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

如何在原子编辑器中同时更改打开和关闭html标签?

如果我有这样的东西,<span>some<span>text</span></span>并且我想将最外面的span标记更改为其他内容,并同时更改开始和结束标记,我该如何使用Atom编辑器执行此操作?我知道cmd + d快捷键向前选择相同的文本,但在这种情况下,它将选择我想要避免的内部span标记.

atom-editor

18
推荐指数
3
解决办法
5319
查看次数

生成具有最接近请求的结果值的等式,具有速度问题

我正在写一些问答游戏,如果玩家未能解决问题,需要计算机在测验中解决1个游戏.

鉴于数据:

  1. 要使用的6个号码的列表,例如4,8,6,2,15,50.
  2. 目标值,其中0 <值<1000,例如590.
  3. 可用的操作是除法,加法,乘法和除法.
  4. 可以使用括号.

生成数学表达式,其中评估与目标值相等或尽可能接近.例如,对于上面给出的数字,表达式可以是:(6 + 4)*50 + 15*(8-2)= 590

我的算法如下:

  1. 从上面的(1)生成给定数字的所有子集的所有排列
  2. 对于每个排列,生成所有括号和运算符组合
  3. 算法运行时跟踪最接近的值

我想不出上面的蛮力算法的任何智能优化,这将使其加速数量级.此外,我必须优化最坏的情况,因为许多测验游戏将在服务器上同时运行.

今天为解决这个问题而编写的代码是(从项目中提取的相关内容):

from operator import add, sub, mul, div
import itertools


ops = ['+', '-', '/', '*']
op_map = {'+': add, '-': sub, '/': div, '*': mul}

# iterate over 1 permutation and generates parentheses and operator combinations
def iter_combinations(seq):
    if len(seq) == 1:
        yield seq[0], str(seq[0])
    else:
        for i in range(len(seq)):
            left, right = seq[:i], seq[i:]  # split input list at i`th …
Run Code Online (Sandbox Code Playgroud)

python algorithm performance permutation np

15
推荐指数
1
解决办法
2702
查看次数

JetBrains产品未在触摸栏上显示FN键

我有一个带触摸栏的Macbook,并希望设置触摸栏以始终显示JetBrains应用程序的FN键.我在首选项中完成了它,与其他应用程序相同.FN键在这些应用程序处于焦点时显示为默认值,但在JetBrains应用程序中则不显示.

macos jetbrains-ide intellij-idea macbookpro-touch-bar

15
推荐指数
4
解决办法
2954
查看次数

使用外部支付处理器的Android应用计费

如果我有网络和Android应用程序共享相同的数据,用户可以在它们之间同步,但我不喜欢收取"高级"功能,其中包括存储图片和其他东西在android以外的服务器上占用空间,我可以收取那些网络上的功能(在订阅基础上)并在订阅运行时自动解锁它们而不会被禁止从游戏商店中删除?我也可以使用其他一些移动支付处理器,例如paypal直接从Android应用程序收取该订阅,如果它将解锁网络和Android应用程序上的功能?这是我在开发人员内容政策中发现的相关内容:

应用内购买:在从Google Play下载的游戏中提供虚拟商品或货币的开发者必须使用Google Play的应用内结算服务作为付款方式.在从Google Play下载的其他应用类别中提供其他内容,服务或功能的开发者必须使用Google Play的应用内结算服务作为付款方式,但以下情况除外:付款主要用于实体商品或服务(例如购买电影票,或购买价格还包括硬拷贝订阅的出版物; 或者支付数字内容或可能在应用程序本身之外消费的商品(例如,购买可以在其他音乐播放器上播放的歌曲).开发人员不得误导用户他们销售的应用程序,也不得误导他们销售的任何应用内服务,商品,内容或功能.如果您在Google Play上的产品说明涉及应用特定或额外费用的应用内功能,则您的说明必须明确通知用户需要付费才能访问这些功能.

android merchant-account

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

IntelliJ IDEA 2017.1显示"var"而不是实际类型

升级到IntelliJ IDEA 2017.1变量后,现在不显示其类型.相反,它表明var.此外,它缩写了一些方法调用.例如,me.getIdAsStr()它显示me.idAsStr.如何恢复旧的行为?

在此输入图像描述 在此输入图像描述

intellij-idea

10
推荐指数
2
解决办法
2628
查看次数

在JavaFX应用程序中更改游标以进行长时间操作

我想在JavaFX应用程序中执行可能很长的操作时将光标更改为Cursor.WAIT.我以为Platform.runLater会帮助我:

this.getStage().getScene().setCursor(Cursor.WAIT);

Platform.runLater(new Runnable() {
    @Override
    public void run() {
        // Do some stuff
        getStage().getScene().setCursor(Cursor.DEFAULT);
    }
});
Run Code Online (Sandbox Code Playgroud)

但光标不会改变.为什么这不起作用?

java javafx

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

用于运行应用程序的Java 9 REPL

Java 9在JDK发行版中引入了名为JShell的 REPL .有没有办法连接到运行某些应用程序的JDK的JShell,并执行引用该运行应用程序的命令.例如,执行一些方法形成应用程序代码,检查对象等.?

java read-eval-print-loop java-9 jshell

9
推荐指数
1
解决办法
736
查看次数

如何正确构建 SQLAlchemy(声明式)python 项目及其单元测试

我正在为一些网络应用程序开发大型后端。这是我的第一个 python 和 SQLAlchemy 项目,所以我对一些事情感到困惑。与 python 相比,有点被 Java 编程工具和 IDE 宠坏了(反正我在 eclipse 中使用 pydev)。我需要有关如何构建项目和编写测试的帮助。我先描述一下情况。

在 PyDev 中,我将我的项目命名为“ProjectName”,下面我显示了我当前的文件夹/包和文件结构。

  • 项目名
    • 项目名
      • __init__.py
      • some_package
        • __init__.py
        • 文件
        • 酒吧.py
    • 测试
      • 单元测试
        • __init__.py
        • some_package
          • __init__.py
          • 测试文件
          • 测试条
      • 负载测试
      • 集成测试
      • __init__.py

我在 SQLAlchemy 中使用声明式风格。Foo 和 Bar 是一些类,例如 Foo 扩展 SQLAlchemy 声明性 Base 和 Bar 扩展 Foo。在它的 __init__.py 中的“projectname.some_package”下,我有以下代码:

engine = create_engine('mysql+mysqldb://user:pass@localhost:3306/SomeDataBase', pool_recycle=3600)
Session = sessionmaker(bind=engine)
Base = declarative_base()
Run Code Online (Sandbox Code Playgroud)

因此,Foo 导入此 Base 并扩展它,而 Bar 导入 Foo 并扩展它。我的第一个问题是,我应该将 Base 存储在 __init__.py 中并像我开始使用这两个类一样使用它吗?这个 create_engine 只是临时的,我想要配置文件并从那里加载它的设置,怎么做?我应该在哪里调用 Base.metadata.create_all(),以便它可以一次创建所有数据库表?

接下来,在测试类中,例如在 TestFoo 中,我有以下代码:

def …
Run Code Online (Sandbox Code Playgroud)

python testing unit-testing sqlalchemy

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

使用类或模块对类似静态的方法进行分组?

我有~30种方法(约6个逻辑分组,每组约5个方法),它们只根据传递的参数进行计算,它们不保存状态或除了参数值之外还需要其他任何东西.

将这些方法,使用模块或类与静态方法分组的pythonic和更好的方法是什么?

差异将是:

from projectname.algorithms.module1 import method1, method2
Run Code Online (Sandbox Code Playgroud)

并且:

from projectname.algorithms import Group1
...
Group1.method1(parameter1)
...
Group1.method2(parameter1)
Run Code Online (Sandbox Code Playgroud)

这只是示例类,模块和方法名称.对类进行分组似乎对我更合乎逻辑.如果经常访问这些方法或任何其他警告,这种方式有任何缺点吗?

python python-module

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