小编qiu*_*fei的帖子

删除NULL指针是否安全?

删除NULL指针是否安全?

它是一种很好的编码风格吗?

c++ pointers memory-management null-pointer delete-operator

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

如何在clojure中处理java变量长度参数?

我将一个java lib包装到clojure中,但是我在处理可变长度参数时遇到了问题.说,

TestClass.aStaticFunction(Integer... intList){/*....*/}
Run Code Online (Sandbox Code Playgroud)

我怎么能在clojure中调用这个函数?

clojure variadic-functions clojure-java-interop

38
推荐指数
3
解决办法
6402
查看次数

如何在maven repo中使用库来进行clojure项目?

我使用Leiningen来管理我的CLJ项目.当我想要包装一个Java库时,我发现我必须首先将它介绍给我的项目.

如何在项目中使用Maven仓库中的库?

clojure maven leiningen

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

在clojure中通常的命名规则是什么?

正如我所见,clojure的变量名比c/c ++/java更多.例如:

函数以'?'结尾 通常返回一个布尔值,它们是谓词.

还有以' - '开头或以'!'结尾的变量.

我认为这些都是clojure风格的命名.那么,clojure中通常的命名规则是什么?clojure程序员有什么共同之处吗?

naming clojure naming-conventions

12
推荐指数
2
解决办法
2619
查看次数

什么是构建模式的clojure方式?

我们通常在java中使用builder模式,如下所示:

UserBuilder userBuilder = new UserBuilder();
User John = userBuiler.setName("John")
                      .setPassword("1234")
                      .isVip(true)
                      .visableByPublic(false)
                      .build();
Run Code Online (Sandbox Code Playgroud)

某些属性具有默认值,而有些属性则没有.

在地图中传递属性可能是一种解决方案,但它会使参数真正变长:

(def john (make-user {:name "John" :pass "1234" :vip true :visible false}))
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,有一种优雅的方式来实现这一目标吗?

design-patterns clojure builder

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

为什么析构函数只被调用一次?

#include <iostream>

using namespace std;

class Test
{
public:
    Test()
    {   
        printf("construct ..\n");
    }   

    ~Test()
    {   
        printf("destruct...\n");
    }   
};

Test Get()
{
    Test t = Test();
    return t;
}

int main(int argc, char *argv[])
{
    Test t = Get();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

控制台输出是:

$ g++ -g -Wall -O0 testdestructor.cc
$ ./a.out 
Run Code Online (Sandbox Code Playgroud)

构造..

破坏...

c++ destructor

9
推荐指数
3
解决办法
483
查看次数

如何访问数组中的最后一个元素?

在我的hive表中,该session字段是一个字符串,格式如下:

ip-sessionID-userID 要么 area-sessionID-userID

有3或4个字段用" -" 分隔,但userID始终是最后一个.

我想选择userID,但如何访问最后一个字段?在python中,有类似的东西: arr[-1]

但在蜂巢中,如何实现这一目标?以下SQL似乎不正确.

select split(session,"\-")[-1] as user from my_table;

谢谢!

arrays hive

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

如何在pthread中终止睡眠线程?

我有线程睡了很长时间,然后醒来做某事,然后再次睡觉,像这样:

while(some_condition)
{
    // do something
    sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能让这个线程优雅而快速地退出?

我尝试使用pthread_cancel(),但无法取消睡眠线程.我也试过改变while循环的条件,但是退出仍然需要很长时间.而且我不想使用pthread_kill(),因为它可能会在线程工作时终止它.

那么,有什么好主意吗?

linux multithreading pthreads

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

如何在原始类型上调度多方法?

我希望我的程序在原始类型和它们的包装类之间采取不同的行为,例如:

(defmulti try-type class)

(defmethod try-type Integer [arg]
  (println "Integer"))

(defmethod try-type Integer/TYPE [arg]
  (println "int"))
Run Code Online (Sandbox Code Playgroud)

但它不起作用,虽然我尝试Integer和int

user=> (try-type (.intValue (int 2)))
Integer
nil
user=> (try-type  (int 2))
Integer
nil
Run Code Online (Sandbox Code Playgroud)

那么,是否可以在原始类型上调度多方法?

======编辑======

我正在将一个谷歌番石榴包裹成clojure.其中有一个原始库,如Booleans,Dobules,Ints等.它们有一些共同的方法,所以我想尝试多方法.

clojure primitive-types multimethod

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

在Clojure中,如何从变量或函数中获取名称字符串?

我想得到一个变量的字符串表示.例如,

(def my-var {})
Run Code Online (Sandbox Code Playgroud)

如何"my-var"从符号中获取字符串my-var?和

(defn my-fun [] ...)
Run Code Online (Sandbox Code Playgroud)

如何"my-fun"从函数中获取字符串my-fun

clojure

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