我是Ruby的新手.一个简单的例子,我需要的:
class Animal
abstract eat()
class Cat < Animal
eat():
implementation
class Dog < Animal
eat():
implementation
Run Code Online (Sandbox Code Playgroud)
换句话说,所有扩展Animal的类都需要eat()方法.
在JAVA中我只使用一个抽象类,但经过一些研究后我发现许多人不在Ruby中使用它,而建议使用mixin/modules.
但是,我不明白,如果模块可以做的不仅仅是包含一个额外的方法.确切地说,模块是否可以为类必须实现哪些方法设置要求(如果是,可以赞赏一个例子)?
总而言之,在这种情况下我应该使用什么,当我想确定,所有相同类型的类都有特定的方法并以自己的方式实现它们?
我在Java应用程序中遇到问题,JIT破坏了代码.如果我禁用JIT,一切正常,但运行速度慢10-20倍.
有没有办法为特定方法或类禁用JIT?
编辑:我正在使用Ubuntu 10.10,获得相同的结果:
OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)
和:
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud) 第一个Dictionary就像
Dictionary<String, String> ParentDict = new Dictionary<String, String>();
ParentDict.Add("A_1", "1");
ParentDict.Add("A_2", "2");
ParentDict.Add("B_1", "3");
ParentDict.Add("B_2", "4");
ParentDict.Add("C_1", "5");
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为新的 Dictionary<String, Dictionary<String,String>>
结果将包含
Key Value
Key Value
_________________________________________________
"A" "A_1" "1"
"A_2" "2"
"B" "B_1" "1"
"B_2" "2"
"C" "C_1" "1"
Run Code Online (Sandbox Code Playgroud)
现在我正在使用nested for loop这个.
我怎么能用LNQ或LAMBDA Expression?
我有一个标签列表:
>>> tags_list
['tag1', 'second tag', 'third longer tag']
Run Code Online (Sandbox Code Playgroud)
如何用"+"替换列表中每个元素中的空格?我试图用正则表达式做这个,但每个字符串保持不变:
for tag in tags_list:
re.sub("\s+" , " ", tag)
Run Code Online (Sandbox Code Playgroud)
我的做法有什么问题?
编辑:
是的,我忘了提到,在每个标签中的单词之间我们可以有多个空格以及标签可以以空格开头或结尾,因为它们是用逗号分隔的字符串解析的,带有split(","):("First标签,第二个标签,第三个标签").抱歉没有足够精确.
我认为在我的应用程序(绘画类型程序)中撒一些调试日志记录并将此信息写入文件可能是有益的.我当前的调试策略是挂钩自定义异常监听器(sys.excepthook)并允许用户通过电子邮件发送导致崩溃的堆栈跟踪的副本.
这对于查看用户导致程序崩溃的行为非常方便,但我觉得日志文件肯定有帮助.我想知道最好的办法是什么.我正在考虑通过命令行开关启用日志记录,并为程序的每次"运行"创建日志,并在发生崩溃时通过电子邮件发送自己的日志副本.但是,如果应用程序未处于调试模式,则日志将无法帮助!
我有点担心日志填满太快 - 如果我将记录放在一些鼠标运动事件处理程序中,那么它将创建许多条目.此外,日志文件可能会变得非常大,并且在检查错误报告时只会向我填充无关信息.
你们怎么处理这个?我对记录的频率感兴趣 - 因为我的应用程序响应了许多事件(例如鼠标移动;取决于用户输入),我不想创建过多的日志记录.
我正在将"云"之外的Google App Engine Web应用程序移动到标准Web框架(webpy),我想知道如何实现Gae上提供的memcache功能.
在我的应用程序中,我只使用此缓存来存储每隔X小时从远程api检索到的一堆数据; 换句话说,我并没有过多地强调这个缓存.
我天真地实现了这样的事情:
class TinyCache():
class _Container():
def __init__(self, value, seconds):
self.value = value
self.cache_age = datetime.now()
self.cache_time = timedelta(seconds = seconds)
def is_stale(self):
return self.cache_age + self.cache_time < datetime.now()
def __init__(self):
self.dict_cache={}
def add(self, key, value, seconds = 7200):
self.dict_cache[key] = self._Container(value, seconds)
def get(self, key):
if key in self.dict_cache:
if self.dict_cache[key].is_stale():
del self.dict_cache[key]
return None
else:
return self.dict_cache[key].value
else:
return None
Run Code Online (Sandbox Code Playgroud)
典型用法是:
data = tinycache.get("remote_api_data")
if data is not None: …Run Code Online (Sandbox Code Playgroud) 我有CSV字符串100.01,200.02,300.03,我需要传递给Oracle中的PL/SQL存储过程.在proc中,我需要在表格的Number列中插入这些值.
为此,我从这里得到了一个工作方法:
[2]按级别使用SQL连接.
现在,我有另一个要求.我需要传递2个CSV字符串[长度相等]作为PL/SQL存储过程的输入.我需要打破这个字符串并将两个CSV字符串中的每个值插入表格中的两个不同列.请你让我知道怎么去吗?
CSV输入示例:mystring varchar2(2000):='0.75,0.64,0.56,0.45';
myAmount varchar2(2000):='0.25,0.5,0.65,0.8';
myString值将进入A列,myAmount值进入表中的B列.
你能告诉我如何实现这个目标吗?
谢谢.
是否可以使用一种drawCircle方法在Android的画布上绘制一个具有不同颜色边框的圆圈?
我注意到了FILL_AND_STROKE的PaintStyle,但是填充和边框似乎都没有不同的颜色.
我真的不想要调用两个drawCircle方法.