删除NULL指针是否安全?
它是一种很好的编码风格吗?
我将一个java lib包装到clojure中,但是我在处理可变长度参数时遇到了问题.说,
TestClass.aStaticFunction(Integer... intList){/*....*/}
Run Code Online (Sandbox Code Playgroud)
我怎么能在clojure中调用这个函数?
我使用Leiningen来管理我的CLJ项目.当我想要包装一个Java库时,我发现我必须首先将它介绍给我的项目.
如何在项目中使用Maven仓库中的库?
正如我所见,clojure的变量名比c/c ++/java更多.例如:
函数以'?'结尾 通常返回一个布尔值,它们是谓词.
还有以' - '开头或以'!'结尾的变量.
我认为这些都是clojure风格的命名.那么,clojure中通常的命名规则是什么?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)
所以,我的问题是,有一种优雅的方式来实现这一目标吗?
#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)
构造..
破坏...
在我的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;
谢谢!
我有线程睡了很长时间,然后醒来做某事,然后再次睡觉,像这样:
while(some_condition)
{
// do something
sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让这个线程优雅而快速地退出?
我尝试使用pthread_cancel(),但无法取消睡眠线程.我也试过改变while循环的条件,但是退出仍然需要很长时间.而且我不想使用pthread_kill(),因为它可能会在线程工作时终止它.
那么,有什么好主意吗?
我希望我的程序在原始类型和它们的包装类之间采取不同的行为,例如:
(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等.它们有一些共同的方法,所以我想尝试多方法.
我想得到一个变量的字符串表示.例如,
(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 ×6
c++ ×2
arrays ×1
builder ×1
destructor ×1
hive ×1
leiningen ×1
linux ×1
maven ×1
multimethod ×1
naming ×1
null-pointer ×1
pointers ×1
pthreads ×1