小编Czi*_*erz的帖子

Java"此语言级别不支持lambda表达式"

我正在测试Java 8的一些新功能,并将示例复制到我的IDE(Eclipse最初,然后是IntelliJ),如下所示:http: //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest. java的

Eclipse没有为lambda表达式提供任何支持,并且IntelliJ不断报告错误"在此语言级别不支持Lambda表达式".我想知道这是我的安装,代码或支持的问题.

java lambda intellij-idea java-8

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

没有中间表达的三元运算符

最近,我意识到,你可以使用GCC和铛三元运营商没有中间(?:? :工程),它会插入第一个表达式到中:

// outputs 2
cout << (2 ?: 4);
// outputs 3
cout << (0 ?  : 3);
Run Code Online (Sandbox Code Playgroud)

这个标准在哪里?我看了,没看到任何关于它的事.

c++ gcc ternary-operator clang conditional-operator

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

std :: enable_if使用非类型模板参数

你将如何在一个std::enable_if?中使用非类型模板参数比较?我无法弄清楚如何再次这样做.(我曾经有过这个工作,但是我丢失了代码,所以我无法回头看看,而且我找不到帖子,我找到了答案.)

提前感谢您对此主题的任何帮助.

template<int Width, int Height, typename T>
class Matrix{
    static
    typename std::enable_if<Width == Height, Matrix<Width, Height, T>>::type
    Identity(){
        Matrix ret;
        for (int y = 0; y < Width; y++){
            elements[y][y] = T(1);
        }
        return ret;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:修复了注释中指出的缺失括号.

c++ templates c++11

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

Emacs Lisp - 你应该在设置密钥之前解除密钥吗?

如果我要重新定义一个键,我应该打电话(global-unset-key (kbd "key-combo")),还是使用该功能global-set-key自动为我调用?

emacs elisp

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

没有因使用sqrt而产生的(Floating Int)实例

我正在Haskell中做一些基础工作,不明白为什么它不能编译。这是错误:

shapes.hs:35:11:
    No instance for (Floating Int) arising from a use of `sqrt'
    In the expression: sqrt (hd * hd + vd * vd)
    In an equation for `d': d = sqrt (hd * hd + vd * vd)
    In the expression:
      let
        hd = xc - x
        vd = yc - y
        d = sqrt (hd * hd + vd * vd)
      in if d <= r then True else False
Run Code Online (Sandbox Code Playgroud)

相关代码:

type Point = (Int,Int)
data Figure = …
Run Code Online (Sandbox Code Playgroud)

haskell

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

表达式'pi*r'*r'中没有(Fractional Int)实例

我正在尝试制作一个非常简单的区域程序:

type Point = (Int, Int)
data Figure = Rect Point Point | Circ Point Int
area (Rect (x1,y1) (x2,y2)) = (x2 - x1) * (y1 - y2)
area (Circ _ r) = pi * r'^2 where r' = fromIntegral r
Run Code Online (Sandbox Code Playgroud)

当我手动输入时ghci,它没有错误并按预期工作.

但是,编译此程序会产生以下错误:

No instance for (Floating Int) arising from a use of `pi'
In the first argument of `(*)', namely `pi'
In the expression: pi * r' ^ 2
In an equation for `area':
    area (Circ _ …
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
3
解决办法
344
查看次数

如果我复制了一个文件描述符,我可以让一侧阻塞和一个非阻塞

我已经通过打开一个套接字connect并希望能够读取结果阻塞和写入非阻塞。我当前的解决方案是将文件描述符设置为非阻塞,然后select当我执行read.

做类似的事情会更简单

int sock = socket(...);
connect(sock, ...);
int reader = dup(sock);
int writer = sock;
fcntl(writer, F_SETFL, fcntl(writer, F_GETFL) | O_NONBLOCK);
Run Code Online (Sandbox Code Playgroud)

是调用fcntl导致readerwriter非阻塞(它在 I/O 对象上设置它)还是fcntl在文件描述符上设置非阻塞?

c unix linux posix

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

嵌入式`(quote ...)`

我安装了一些主题,并将以下内容放入了我的$HOME/.emacs

(custom-set-variables ; Your init file should only contain one of these
 '(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90"
                              "a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0"
                              "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
                              default)))
 )
Run Code Online (Sandbox Code Playgroud)

为什么在引号内有引号?那不是多余的吗?

emacs elisp

0
推荐指数
1
解决办法
49
查看次数

Perl正则表达式取代?

为什么这样做:

$my_str=~s/://g;
Run Code Online (Sandbox Code Playgroud)

但这不是:

$my_str=~s/:://g;
Run Code Online (Sandbox Code Playgroud)

我有一个看起来像这样的字符串:::this:is:my:string我需要删除::但不要触摸:.

regex perl

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

为什么声明变量会调用构造函数

我创建了一个简单的类来表示 x、y 坐标。它有一个封装的 int 和以下构造函数:

//point.h
Point(int x = 3, int y = 5); // not zero for example purposes

//point.cpp
Point::Point(int x, int y) : x(x), y(y) {}
Run Code Online (Sandbox Code Playgroud)

然后我有一个文件main.cpp

#include "point.h"
#include <iostream>

int main() {
    Point p;
    std::cout << "x: " << p.getX() << " y: " << p.getY() << std::endl;
    p.setX(7);
    p.setY(9);
    std::cout << "x: " << p.getX() << " y: " << p.getY() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

来自 Java 背景,我预计这会产生一个空指针,但它却打印:

x: 3 y: 5
x: …
Run Code Online (Sandbox Code Playgroud)

c++ constructor

-1
推荐指数
1
解决办法
2174
查看次数