小编res*_*man的帖子

如何从薪资表中找到第三或第n个最高薪水?

如何以优化的方式third or nth从薪水table(EmpID,EmpName,EmpSalary)中找到最高薪水?

sql sql-server sql-server-2008

95
推荐指数
13
解决办法
85万
查看次数

自定义IPython Notebook键盘快捷键,可在编辑模式下复制当前行

在IPython Notebook环境中,可以使用IPython Javascript API定义自定义键盘快捷键.使用%%javascript魔法,可以在IPython的交互式控制台中编写一个javascript,如下所示(此处描述的示例):

%%javascript

IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
    help : 'run cell',
    help_index : 'zz',
    handler : function (event) {
        IPython.notebook.execute_cell();
        return false;
    }}
);
Run Code Online (Sandbox Code Playgroud)

我想编写一个javascript,在编辑模式下创建一个快捷方式,将Ctrl-Alt-Down绑定到"重复当前行"的动作 - 也就是说,将光标移动到当前行的开头,选择行,复制行,返回,粘贴.基本上,我想模拟Eclipse的键盘快捷键,或Notepad ++中的Ctrl-d,或Emacs中的Ca C-SPACE Cn Mw Cy.javascript文件将采用以下形式:

%%javascript

IPython.keyboard_manager.edit_shortcuts.add_shortcut('ctrl-alt-down', {
    help : 'run cell',
    help_index : 'zz',
    handler : function (event) {
        [Code that duplicates the line];
        return false;
    }}
);
Run Code Online (Sandbox Code Playgroud)

虽然我的尝试建议'ctrl-alt-down'是表示快捷方式序列的错误方法,但我找不到任何文档keyboard_manager.

我宁愿不使用(例如)AutoHotKey解决方案,因为我想将此快捷方式限制为IPython Notebook的编辑模式.

javascript keyboard-shortcuts ipython-notebook

17
推荐指数
2
解决办法
5217
查看次数

返回打破引用透明度?

我正在阅读Scala WartRemover工具的描述,并对其中的一个要点感到困惑.描述说:

return打破参考透明度.重构以安全的方式终止计算.

// Won't compile: return is disabled
def foo(n:Int): Int = return n + 1
def foo(ns: List[Int]): Any = ns.map(n => return n + 1)
Run Code Online (Sandbox Code Playgroud)

这对我来说没有任何意义,两个例子看起来都是透明的.是否有某种方式使return关键字使函数更有可能破坏引用透明度?我只是完全误解了他们的观点?

functional-programming scala referential-transparency

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

Google Charts日期格式

出于某种原因,使用模式的日期格式化程序在我的应用程序中根本不起作用.我想到的一件事是它不允许格式化x轴.这是一个片段:

var dataTable = new google.visualization.DataTable();
dataTable.addColumn('date', 'YearMonth');
dataTable.addColumn('number', 'Beds');
dataTable.addColumn('number', 'Rooms');
var monthYearFormatter = new google.visualization.DateFormat({ pattern: "MMM yyyy" });
monthYearFormatter.format(dataTable, 0);
Run Code Online (Sandbox Code Playgroud)

所以在循环的其他地方我做以下事情:

dataTable.addRow(d, currentRow.Beds, currentRow.Rooms]);
Run Code Online (Sandbox Code Playgroud)

其中"d"是有效日期.它根本没有格式化,但是当我完成所有这些操作时,它只显示默认格式.

有人这样做过吗?

google-visualization

7
推荐指数
2
解决办法
2万
查看次数

如何删除打印行之间的空格?

我创建了这个程序,以帮助我在创建的文本冒险中绘制地图.到目前为止,它所做的只是绘制你输入的黑色方格的拘留.有没有办法去除每条线之间的空间,所以没有白线穿过广场?

这是我的代码:

import java.util.Scanner;

public class MapGrid {

    static String createGrid(int x, int y) {
        String output = "";
        String block = new String("\u2588\u2588"); //A string of two unicode block symbols: ??

        if(x * y != 0) { //If neither x nor y is 0, a map of length x and height y will be returned
            for(int n = 1; n <= y; n++) {
                for(int i = 1; i <= x; i++) {
                    output += block;
                }
                output += …
Run Code Online (Sandbox Code Playgroud)

java println

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

Java中的递归它是如何工作的?

请在以下代码中解释recursion语句的工作原理.

int factR(int n) {
    int result;

    if(n==1) return 1;

    result = factR(n-1) * n;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我的理解是:

在上面的语句中,该factR(n-1)方法调用自身直到结束.假设我们想得到6的阶乘,它将作为参数发送给这个方法.它将作为参数接收n,n然后将检查其值; 如果是1那么将返回1.但是如果它不是1,就像我们的情况那样它是6,则递归语句将运行.

现在我遇到的问题是第一次n-1变为5并且乘以n,其保持值6,然后它变为30.现在30将GO在哪里?

然后该方法将调用自身,此时间n-1变为4,然后它乘以nIF保持值"6"然后4*6 = 24,我认为这是错误的.因为如果我们经历这种方式,那么在下一次调用中,进程将是类似的,n-1将变为3*n,其中IF保持相同的值,即6然后它将变为3*6 = 18.然后下一次调用发生并且n-1变为2我们乘以并假设它n保持值6然后2*6 = 12,并且最后调用n-1= 1*n = 6.我的观点是很明显n-1会减小值,n-1即6-1 = 5然后5-1 = 4然后4-1 = 3然后3-1 = 2和2-1 = 1.但问题是,n每当方法调用自身时,它的值是多少?

如果你说当第一次乘法发生时,即"n-1"变为5然后乘以6 = 30而30则存储在"n"然后在下一次调用中5-1 = 4*30 = 120,然后4- 1 = 3*120 = 360,然后3-1 …

java recursion

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

有效地将大量字节数据从C++传输到Java

我有一个Java程序,用于以自定义文件格式显示图像,使用JNI通过C++库读取.数据被加载到C++端的char数组中,并传输到Java端的BufferedImage.由于图像的各个部分可以从内存中删除,需要定期重新加载,所以我希望这些操作尽可能快.

我目前正在这样做的方式是将数据从文件中读取到C++库内存中的缓冲区中.为了填充BufferedImage,Java代码对每个像素进行JNI函数调用以从该缓冲区读取,并且如果需要,将另一块数据加载到缓冲区中.这有效,但开销比我想要的高.

我一直计划要做的就是使用JNI调用将BufferedImage对象传递给C++代码,并从那一侧对其进行函数调用.我一直在研究JNI,但是我还没有发现从JVM加载的C++库中修改Java对象是否有任何成本.这是实现这个的好方法,还是有更快的方法用JNI传输大量的字节数据?

java java-native-interface image

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

功能事件驱动编程

我在使用Clojure和Seesaw编写功能样式的事件驱动GUI代码时遇到了麻烦.具体来说,我无法弄清楚如何在不使用全局变量或其他一些令人不快的黑客的情况下传递程序的状态.我目前的做法是这样的:

(defn event-handler [gui-state event]
   (update-gui! (get-new-state gui-state event)))

(defn update-gui! [gui-state]
   (remove-all-listeners (gui-state :button))
   (seesaw.core/listen (gui-state :button)
                       :action
                       (partial event-handler gui-state)))
Run Code Online (Sandbox Code Playgroud)

它在相关组件上设置一个事件监听器,并使用部分应用的函数来推进状态并更新gui,包括删除旧的监听器.虽然这似乎有效,但我并不喜欢它,部分是因为我无法在状态中传递监听器(因为它在我已经定义状态之后才构建),所以删除旧的监听器需要删除所有侦听器,这可能会在程序增长时导致问题.

我在网上找到的最接近的解决方案是在这个答案中,但我不知道如何像它显示的那样处理事件.我确信必须有一个比我目前的方法更好的解决方案,但我无法弄清楚是什么.

任何人都可以告诉我如何在仍然遵循功能风格的同时响应用户输入事件?

events user-interface functional-programming clojure seesaw

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

Django REST Framework中的camelCase POST数据

我看到有一个名为djangorestframework-camel-case的项目,允许在Django REST序列化程序中使用带有下划线字段的JavaScript-ish camelCase.所以,基本上,我可以发送:

{
    "camelCase": "foo"
}
Run Code Online (Sandbox Code Playgroud)

并使用以下Serializer接收它:

class MySerializer(serializers.Serializer):
    session_id = serializers.CharField()
Run Code Online (Sandbox Code Playgroud)

是否存在类似POST数据的内容?所以我可以camelCase=foo通过POST 发送并将其接收到我的序列化器中的underscore_case字段?

我尝试基于FormParser实现自己的解析器:

class CamelCaseFormParser(FormParser):
    media_type = 'application/x-www-form-urlencoded'

    def __init__(self):
        print("initialized")

    def parse(self, stream, media_type=None, parser_context=None):
        print("parse")
        ...
Run Code Online (Sandbox Code Playgroud)

并且,在将其添加到DEFAULT_PARSER_CLASSESsettings.py中之后,initialized实际打印时,parse则不是.所以看来,在POST数据的情况下,application/x-www-form-urlencoded根本不使用解析器.

由于Serializers的使用方式如下:

Serializer(data=request.data)
Run Code Online (Sandbox Code Playgroud)

我正在考虑继承Serializer并data在进一步处理之前进行修改,甚至在创建Serializer之前修改它.但我要求的是一种更方便的方法,适用于所有的Serializers,而无需对它们进行子类化.

python django rest camelcasing django-rest-framework

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

摆脱if/else

在Java中,我将使用值设置POJO类.但是要决定使用哪个setter函数,我要依赖于if条件.我目前的代码如下:

// Code written in a function which is called within a loop, while parsing xml file.
if (name.equals("dim1")) {
    line.setDim1Code(Integer.parseInt(value));
} else if (name.equals("dim2")) {
    line.setDim2Code(Integer.parseInt(value));
} else if (name.equals("debitcredit")) {
    line.setDebitOrCredit(value);
} else if (name.equals("basevalue")) {
    line.setBasevalue(Integer.parseInt(value));
} else if (name.equals("rate")) {
    line.setRate(Integer.parseInt(value));
} else if (name.equals("value")) {
    line.setValue(Integer.parseInt(value));
} else if (name.equals("description")) {
    line.setDescription(value);
} else if (name.equals("vatbasetotal")) {
    line.setVatBaseTotal(value);
} else if (name.equals("vattotal")) {
    line.setVatTotal(value);
}
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但我已经设置了70多个这样的属性.我的代码正在运行,但我想知道它是否正确的做事方式?

AFAIK,这样的代码反对编码最佳实践.我们如何在Java中优化此代码?处理此类代码的Java最佳实践是什么?

java

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