我最近开始阅读Joshua Bloch撰写的Effective Java.我发现Builder模式的概念[书中的第2项]非常有趣.我试图在我的项目中实现它,但有编译错误.以下是我试图做的事情:
具有多个属性及其构建器类的类:
public class NutritionalFacts {
private int sodium;
private int fat;
private int carbo;
public class Builder {
private int sodium;
private int fat;
private int carbo;
public Builder(int s) {
this.sodium = s;
}
public Builder fat(int f) {
this.fat = f;
return this;
}
public Builder carbo(int c) {
this.carbo = c;
return this;
}
public NutritionalFacts build() {
return new NutritionalFacts(this);
}
}
private NutritionalFacts(Builder b) {
this.sodium = b.sodium;
this.fat = b.fat;
this.carbo …Run Code Online (Sandbox Code Playgroud) 我不明白如何使用类.当我尝试使用该类时,以下代码给出了一个错误.
class MyStuff:
def average(a, b, c): # Get the average of three numbers
result = a + b + c
result = result / 3
return result
# Now use the function `average` from the `MyStuff` class
print(MyStuff.average(9, 18, 27))
Run Code Online (Sandbox Code Playgroud)
错误:
File "class.py", line 7, in <module>
print(MyStuff.average(9, 18, 27))
TypeError: unbound method average() must be called with MyStuff instance as first argument (got int instance instead)
Run Code Online (Sandbox Code Playgroud)
怎么了?
我有一个大量使用regexp的python模板引擎.它使用如下的连接:
re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" )
Run Code Online (Sandbox Code Playgroud)
我可以修改单个子串(regexp1,regexp2等).
是否有任何小而轻的表达式,什么都不匹配,我可以在模板中使用,我不想要任何匹配?不幸的是,有时'+'或'*'被附加到正则表达式原子,因此我不能使用空字符串 - 这将引发"无需重复"错误.
我正在尝试使用Symfony2,并一直在尝试为我的应用程序的模型层设置自动化测试.Symfony2书谈到了控制器的单元测试,但我找不到很多模型测试的例子.
我希望在每次测试运行之前都有一个干净的数据集,并找到这些文章:
根据sznapka.pl文章,我有一个实际运行的测试没有错误,但是虽然创建了测试模式,但是没有加载.我看不出为什么,甚至是一种调试方法.
背景:我之前使用的是CakePHP,其中夹具的装载很大程度上是自动处理的,也许我对Symfony/Doctrine有错误的方法?
我需要使用"Do/While"循环读取文件.
如何以字符串形式阅读内容?
这是我的代码:
cat directory/scripts/tv2dbarray.txt | while read line
do
echo "a line: $line"
done
Run Code Online (Sandbox Code Playgroud)
错误:
test.sh: line 4: syntax error near unexpected token `done'
test.sh: line 4: `done'
Run Code Online (Sandbox Code Playgroud) 我正在开始一个普通C(c99)的新项目,该项目主要用于文本.由于外部项目的限制,这段代码必须非常简单和紧凑,由一个没有外部依赖的源代码文件或除libc和类似的无处不在的系统库之外的库组成.
根据这种理解,哪些最佳实践,陷阱,技巧或其他技术可以帮助使项目的字符串处理更加健壮和安全?
群集索引如何存储在硬盘上?什么是逻辑顺序?
非聚集索引如何工作?
我在使用C中的单链表制作数据库时遇到了麻烦,不是因为链表概念而是因为结构本身的字符串字段.
这是C中的赋值,据我所知(我是新手),C不会将'string'识别为数据类型.
这就是我的结构代码:
typedef struct
{
int number;
string name;
string address;
string birthdate;
char gender;
} patient;
typedef struct llist
{
patient num;
struct llist *next;
} list;
Run Code Online (Sandbox Code Playgroud)
我正在考虑为字符串本身创建一个结构,以便我可以在结构中使用它们,如下所示:
typedef struct string
{
char *text;
} *string;
Run Code Online (Sandbox Code Playgroud)
然后malloc(),当需要创建字符串类型的新数据(char数组)时,我会将其中的每一个都用.
typedef struct string
{
char *text;
} *string;
int main()
{
int length = 50;
string s = (string) malloc(sizeof string);
s->text = (char *) malloc(len * sizeof char);
strcpy(s->text, patient.name->text);
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
谢谢.
是否有适用于Google云端硬盘的C或C++ API?
我查看了Google API开发人员网站,但在那里我只能找到适用于Java,PHP,Ruby,Python和C#的API.
我想开发一个简单的C/C++命令行二进制文件,以将本地文件夹同步到远程文件夹.
我正在寻找一个可以根据一组规则改变网络数据包有效负载的linux实用程序.理想情况下,我使用iptables和netfilter内核模块,但它们不支持通用有效负载修改:iptables将改变各种头字段(地址,端口,TOS等),它可以匹配数据包中的任意字节,但它显然是无法更改数据包中的任意数据.
内核模块将是一个很大的优势,因为效率是一个问题,但我很乐意探索任何其他可以完成工作的选项.
谢谢你的想法!
姗姗来迟的更新:
我们选择使用该NFQUEUE模块,这是Robert Gamble建议的QUEUE模块的最新实现.它似乎相当简单,有一个安全奖励,允许我们的代码在用户而不是内核,空间运行.
如果我们只是想在不改变其大小的情况下改变有效载荷,那么实现几乎是微不足道的.在这种情况下,我们定义一个iptables规则来为我们选择"有趣"的数据包并向它们发送一个NFQUEUE目标.我们编写了一个回调函数来检查数据包NFQUEUE,根据需要修改数据,并重新计算TCP和IP头中的校验和.
但是,我们的用例涉及将其他字符注入数据流.这有一些明显的副作用,即增加TCP流中相应的SEQ/ACK号码,以及使conntrack模块混淆不足以完全破坏NAT 的不那么明显的副作用.经过大量的研究,头脑清理和实验,最方便的解决方案是禁用这些特定数据包的连接跟踪(使用表中的NOTRACK目标raw)并在我们的回调中处理它. 保存你的西红柿,讨厌邮件; 我并不自豪地让你陷入困境,但这是在下一个冰河世纪之前为客户提供可靠产品的唯一途径.这是一个很好的故事.但我真的很感激并分享你的衷心感受.
版本2将通过iptables使用自定义NAT和/或conntrack帮助程序替换我们的回调和若干规则来利用我们新发现的启示.我们相信,当前的练习为我们提供了足够的经验,可以创建一个内核模块,该模块将有机地融入netfilter体系结构中,以解决我们遇到的问题.
再次感谢您的关注和建议!
c ×3
python ×2
string ×2
bash ×1
c++ ×1
class ×1
doctrine-orm ×1
indexing ×1
iptables ×1
java ×1
linked-list ×1
linux ×1
methods ×1
networking ×1
python-3.x ×1
regex ×1
robustness ×1
security ×1
sql-server ×1
structure ×1
symfony ×1
unit-testing ×1