小编rig*_*old的帖子

NetHack走廊实施

我正在玩NetHack,因为我正在为自己编写简化版本.我的问题是,走廊是如何实施的?我一直试图想出一种方法,但现在却无法想出任何合理的方法.

c++ nethack

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

CodeIgniter将所有字段作为字符串返回

我在CodeIgniter中有这个查询:

$query = $this->db->query("
      SELECT u.id
           , u.first_name, u.last_name
           , u.email_address
           , g.id AS group_id
           , g.name AS group_name
           , g.human_readable_name AS human_readable_group_name
        FROM users AS u
        JOIN groups AS g
          ON u.group_id = g.id
    ORDER BY u.last_name
");

return $query->result();
Run Code Online (Sandbox Code Playgroud)

当我var_dump连续,我得到这个:

object(stdClass)#22 (4) {
  ["id"]=>
  string(2) "19"
  ["first_name"]=>
  string(9) "rightfold"
  // etc
}
Run Code Online (Sandbox Code Playgroud)

id并且group_idinteger在PostgreSQL中,但是$query->result()将它们作为字符串返回.如何告诉CodeIgniter使用正确的数据类型(texts为字符串,integers为整数,timestamps为DateTime对象等)返回字段?

我在PHP 5.3.15上使用CodeIgniter 2.1.4.

php postgresql codeigniter

8
推荐指数
4
解决办法
7099
查看次数

用Java编写的类是否可以实现用Clojure编写的协议?

我只能找到关于逆的东西; 使用Clojure实现Java接口.但是,我想在Clojure中编写一个程序,并允许用Java扩展它.例如:

# P.clj
(defprotocol P
  (f [a])
  (g [a b]))

# I.java
public class I implements P {
    public Object f(Object a) { … }
    public Object g(Object a, Object b) { … }
}
Run Code Online (Sandbox Code Playgroud)

另外,我如何指定参数类型,所以我不必Object在任何地方使用?

我目前看到的唯一选择是使用点符号并依赖于duck typing,但我更喜欢Java端的接口实现的编译时验证.

java clojure

8
推荐指数
2
解决办法
263
查看次数

未定义的子程序调用

我试图在Perl中使用简单的模块:

火焰/ Text.pm:

package Flame::Text;
sub words { … }
1;
Run Code Online (Sandbox Code Playgroud)

火焰/ Query.pm:

package Flame::Query;
use Flame::Text qw(words);
sub parse_query { words(shift); }
parse_query 'hi';
1;
Run Code Online (Sandbox Code Playgroud)

为什么我收到以下错误消息?

&Flame::Query::words在Flame/Query.pm第3行调用的未定义子例程.

以下工作正常:

package Flame::Query;
use Flame::Text;
sub parse_query { Flame::Text::words(shift); }
parse_query 'hi';
1;
Run Code Online (Sandbox Code Playgroud)

perl perl-module

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

如何实现仅在堆栈上分配的字符串

在大约十年前的一个项目中,我们发现std::vector动态分配导致了严重的性能损失.在这种情况下,它分配了许多小向量,因此快速解决方案是编写一个类似于向量的类,包装在基于堆栈的预分配char数组中,用作其容量的原始存储.结果是static_vector<typename T, std::size_t Max>.如果您了解一些基础知识,这样的事情很容易写,你可以在网上找到很多这样的野兽.事实上,现在也有一个提升.

现在在嵌入式平台上工作,我们碰巧需要一个static_basic_string.这将是一个字符串,它预先在堆栈上分配固定的最大内存量,并将其用作容量.

起初我认为这应该相当容易(static_vector毕竟它可以基于现有的),但再看看std::basic_string界面我不再那么肯定了.它比std::vector界面更复杂.特别是实现find()功能系列std::basic_string不仅仅是一项繁琐的工作.

这让我再次思考.毕竟,这就是创建分配器的原因:基于newdelete使用其他方法替换分配.但是,要说分配器接口不实用将是轻描淡写.有一些文章在那里解释它,但有一个原因,我在过去的15年中看到这么的本土分配器.

所以这是我的问题:

如果你必须实现一个basic_string相似的,你会怎么做?

  • 写你自己的static_basic_string
  • 写一个分配器来传递给std::basic_string
  • 做一些我没想到的事情?
  • 使用来自提升的东西我不知道?

与往常一样,对我们来说存在相当重要的限制:在嵌入式平台上,我们与GCC 4.1.2绑定,因此我们只能使用C++ 03,TR1和boost 1.52.

c++ string allocator stack-allocation

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

GADT头中的类型变量是否有意义?

这两个GADT声明之间有区别吗?

data A a b where
    ...

data A :: * -> * -> * where
    ...
Run Code Online (Sandbox Code Playgroud)

syntax haskell gadt

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

空参数替代C#6.0

我已经看到C#6中的新功能允许代码跳过检查if语句null.

例如:

return p?.ToString();
Run Code Online (Sandbox Code Playgroud)

如何调用p需要作为参数传递的方法(没有旧的if/ else)?

我通常用C#pre-6编写的方式:

 p != null ? callmethod(p) : null
Run Code Online (Sandbox Code Playgroud)

在C#6中有更好的东西吗?

c# c#-6.0

8
推荐指数
2
解决办法
831
查看次数

我是否应该包含手册页概要中列出的任何或所有标题?

例如,取open(2),其中包含以下概要:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

我应该包括所有这些头文件还是其中任何一个?在前一种情况下,我如何知道哪些头文件包含哪些函数,宏和typedef?

c linux bsd posix manpage

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

len的docstring中的"模块"是什么?

>>> print(len.__doc__)
len(module, object)

Return the number of items of a sequence or mapping.
>>> len(os, 1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: len() takes exactly one argument (2 given)
Run Code Online (Sandbox Code Playgroud)

请注意docstring第一行中的两个参数.

len什么时候会传递两个参数?文档字符串不正确吗?我正在使用Python 3.4.0.

python python-3.4

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

如何将 BQL Bloomberg excel 公式实现到 python API (blpapi)?

有没有办法使用python API甚至任何语言的API来实现BQL?

bloomberg blpapi

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