鉴于C中的这行代码:
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
有没有办法从第一个粗体括号中删除或抽出其匹配的括号?我想过df),但这只会让你在9.0之后.
有没有类似的方法让vim抓住匹配大括号之间的所有内容,无论换行?
在Java中,它看起来像这样:
class Foo
{
float[] array;
}
Foo instance = new Foo();
instance.array = new float[10];
Run Code Online (Sandbox Code Playgroud) 我想用类名和方法填充一个映射,一个唯一的标识符和指向该方法的指针.
typedef std::map<std::string, std::string, std::string, int> actions_type;
typedef actions_type::iterator actions_iterator;
actions_type actions;
actions.insert(make_pair(class_name, attribute_name, identifier, method_pointer));
//after which I want call the appropriate method in the loop
while (the_app_is_running)
{
std::string requested_class = get_requested_class();
std::string requested_method = get_requested_method();
//determine class
for(actions_iterator ita = actions.begin(); ita != actions.end(); ++ita)
{
if (ita->first == requested_class && ita->second == requested_method)
{
//class and method match
//create a new class instance
//call method
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果方法是静态的,那么一个简单的指针就足够了,问题很简单,但我想动态创建对象,所以我需要存储一个指向类的方法和方法的偏移量,我不知道这是否有效(如果偏移总是相同的等等).
问题是C++缺乏反射,使用反射的解释语言中的等效代码应如下所示(PHP中的示例):
$actions = array
(
"first_identifier" => …Run Code Online (Sandbox Code Playgroud) 我正在寻找特定的建议或对算法和/或数据结构的引用,以便将单词列表编码成有效地变成拼写检查字典的单词.该方案的目标将导致原始单词列表与编码形式的非常高的压缩比.我对编码字典的唯一输出要求是,可以以相对有效的方式针对原始单词列表测试任何提出的目标字的存在性.例如,应用程序可能希望针对100,000字词的字典检查10,000个单词.事实并非如此 要求编码的字典表单能够[轻松]转换回原始单词列表形式 - 二进制是/否结果是针对结果字典测试的每个单词所需的全部内容.
我假设编码方案,以提高压缩比,将利用给定语言中的已知结构,如单数和复数形式,所有格形式,收缩等.我特别感兴趣主要编码英语单词,但要明确,该方案必须能够编码任何和所有ASCII文本"单词".
我想到的特定应用程序可以假设是非易失性存储空间非常宝贵的嵌入式设备,而字典则是随机可访问的只读存储区.
编辑:总结字典的要求:
是否有内置函数/运算符可用于从字典中解压缩值并将其分配给实例变量?
这就是我打算做的事情:
c = MyClass()
c.foo = 123
c.bar = 123
# c.foo == 123 and c.bar == 123
d = {'bar': 456}
c.update(d)
# c.foo == 123 and c.bar == 456
Run Code Online (Sandbox Code Playgroud)
类似于字典的东西,update()它从另一个字典加载值但是对于普通对象/类实例?
当应用程序设计需要过程代码和实质数据库时,许多开发人员似乎要么被吓倒,要么有点不知所措.在大多数情况下,"数据库"表示带有SQL接口的RDBMS.
然而在我看来,解决两种范式之间"阻抗不匹配"的许多技术将更适合于ISAM(索引顺序访问方法)工具集,您可以(必须)指定表,索引,行-naviagation等明显 - 正好是ActiveRecord模型规定的行为.
在PC早期,dBASE及其后代是主要的dbms平台,它是一种增强的ISAM.Foxpro在今天成功延续了这一血统.MySQL和Informix是两个至少最初构建在ISAM实现之上的RDBMS,因此这种方法应至少具有同等性能.我感觉许多对SQL不满意的开发人员至少在无意识中渴望恢复ISAM方法,并且数据库可以更容易被视为一组高效的可链接超阵列.在我看来,这可能是一个非常好的主意.
你有没有试过一个ORM-to-ISAM实现?怎么成功?如果没有,您认为值得一试吗?该模型是否有明确的工具集?
我正在研究一个项目,我有一些必须拥有的控件,我包含在我构建的大多数网站中.通常情况下,最好的控件并不总是很好地宣传,所以我想我会问Stack Overflow社区他们最喜欢的第三方ASP.NET控件 - 你必须在项目中拥有它们因为它们是如此有价值.
编辑:
有些人要求澄清和我包含的控制.
首先,我不是只讨论用户界面控件而是图书馆,有些人提到log4net属于这一类.
对我来说,有一个第三方控制包,我发现它是巧妙地完成的,并且有着不可思议的价值 - 这是Peter Blum的数据输入套件.正如Scott Hanselman所说,它是"完全重新构想ASP.NET验证框架",它加载了与数据输入表单进行丰富交互的控件.
除此之外,我最近正在挖掘jQuery,但是到目前为止大多数答案都在很多地方使用ASP.NET Ajax控件工具包.
我正在编写一个应用程序,其中一个功能是允许用户使用Markdown语法编写电子邮件模板.
除格式化外,用户必须能够使用占位符来处理在运行时被替换的几个变量.
这个目前的工作方式非常简单:模板有Pythonic%(var)的占位符,我在应用Markdown2格式之前用字典替换它们.
事实证明,这个系统的最终用户将是一个精通技术的用户,我不想让每个人都明白它是用Python编写的.
这不是我不喜欢Python ......我实际上认为Python是完成这项工作的完美工具,我只是不想向用户公开它(即使它是用Java编写的,也希望相同,Perl ,Ruby或其他任何东西).
因此,我想问一下您认为哪些是为用户公开占位符的最佳方式的见解:
你认为最好的占位符格式是什么(想象为$ {var},$(var)或#{var})?
替换这些占位符的最佳方法是什么?
我使用正则表达式来改变 - 例如 - $ {var}到%(var)s然后应用常规的Python模板替换,但我不确定这是最好的方法.
如果你这样做,如果你能指出我那个正则表达式的草稿,那将是非常好的.
谢谢!
更新:用户指出使用完整的模板系统,但我认为这可能不值得,因为我需要的是占位符替换:我不会有循环或类似的东西.
最后更新:我此时选择不使用任何模板引擎.我选择使用更简单的string.Template方法(正如hyperboreean的评论所指出的那样).事实是,我不喜欢选择解决方案,因为将来某个时候可能需要解决方案.我将把所有这些建议保留在我的袖子上,如果在应用程序的生命周期中明确需要它们提供的一个或多个功能,我将重新审视这个想法.现在,我真的觉得这太过分了.拥有完整的模板,最终用户可以根据自己的需要进行编辑,至少在我看来,更多的麻烦而不是受益.尽管如此,感觉更好的是我没有意识到我没有沿着这条道路前进的原因,而只是没有研究任何东西并选择它.
非常感谢所有的输入.
使用Python 2.6,有没有办法在一个语句中检查序列的所有项是否等于给定值?
[pseudocode]
my_sequence = (2,5,7,82,35)
if all the values in (type(i) for i in my_sequence) == int:
do()
Run Code Online (Sandbox Code Playgroud)
而不是说:
my_sequence = (2,5,7,82,35)
all_int = True
for i in my_sequence:
if type(i) is not int:
all_int = False
break
if all_int:
do()
Run Code Online (Sandbox Code Playgroud) 我是C的新手,我对通过指针引用结构成员时得到的结果感到困惑.有关示例,请参阅以下代码.当我第一次引用tst-> number时发生了什么?我在这里错过了什么基本的东西?
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int number;
} Test;
Test* Test_New(Test t,int number) {
t.number = number;
return &t;
}
int main(int argc, char** argv) {
Test test;
Test *tst = Test_New(test,10);
printf("Test.number = %d\n",tst->number);
printf("Test.number = %d\n",tst->number);
printf("Test.number = %d\n",tst->number);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Test.number = 10
Test.number = 4206602
Test.number = 4206602
Run Code Online (Sandbox Code Playgroud) python ×3
algorithm ×1
asp.net ×1
c ×1
c++ ×1
dictionary ×1
editor ×1
email ×1
formatting ×1
iphone ×1
isam ×1
object ×1
objective-c ×1
orm ×1
python-2.6 ×1
sql ×1
templates ×1
vim ×1