我有一个方法:
def do_something(year=?, month=?):
pass
Run Code Online (Sandbox Code Playgroud)
我希望year
和month
参数是可选的,但我希望它们的默认值等于当前年份和月份.我已经考虑过在方法声明之前设置两个变量,但是这个过程可以运行几个月.它需要是动态的.
看起来它应该不难,但我今天有心理障碍所以你会怎么做?
我已经阅读了msdn以及有关处理模式的各种帖子,还有一些我不理解的事情.我编写了以下代码来测试dispose模式.请注意,没有无人管理的资源,我使用的是vs2008和.net 3.5:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void tryDispose()
{
//test 1 : allocate resource and leave manage it to gc
BL.myclass df = new BL.myclass();
//test 2 : try to force garbage collecting
//GC.Collect();
//test 3 : call dispose myself
//using (BL.myclass df = new BL.myclass())
//{
//}
}
private void button1_Click(object sender, EventArgs e)
{
tryDispose();
}
Run Code Online (Sandbox Code Playgroud)
这是我的一次性课程:
class myclass: IDisposable
{
private StronglyTypedDs myDS;
private bool _disposed;
public myclass() …
Run Code Online (Sandbox Code Playgroud) 嘿,我想一起使用 Devise 和 act_as_audited 但是当我尝试使用 -
class ApplicationController < ActionController::Base
audit Candidate
protected
def current_user
@user = User.find(user_session)
end
Run Code Online (Sandbox Code Playgroud)
我收到这个错误。
stack level too deep
Run Code Online (Sandbox Code Playgroud)
我需要以不同的方式做吗?
谢谢
我正在尝试编写一个facet_wrap
在多个页面上绘制ggplot 图的函数.这只是一个黑客,因为这个功能似乎在ggplot2功能待办事项列表中.我做了一些小的计算,找到了我需要的页数,我每页需要的行data.frame
数等等.我非常有信心这一切都有效.
pdf(filename)
for (i in seq(num_pages)){
slice = seq(((i-1)*num_rows)+1,(i*num_rows))
slice = slice[!(slice > nrow(df.merged))]
df.segment=df.merged[slice,]
p <- ggplot(df.segment, aes(y=mean,x=phenotype))
p <- p + geom_bar(stat="identity",fill="white",colour="black")
p + facet_wrap("ID",scales="free_y",ncol=n_facets,nrow=n_facets)
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
我的问题是,通过将它全部包含在这样的for循环中,在pdf()
和dev.off()
函数之间,是for循环似乎不等待ggplot来做它的事情,并且非常快速地通过它的循环并输出PDF无效.
如果我设置i = 1
,启动pdf()
,在for循环中运行上面的代码,然后设置i=2
,然后运行代码,依此类推,直到我感到无聊(i=3
)然后关闭设备,结果PDF很棒.
有没有办法在进入下一次迭代之前让for循环等待最后一行完成绘图?
c2=[]
row1=[1,22,53]
row2=[14,25,46]
row3=[7,8,9]
c2.append(row2)
c2.append(row1)
c2.append(row3)
Run Code Online (Sandbox Code Playgroud)
c2
就是现在:
[[14, 25, 46], [1, 22, 53], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
我如何c2
以这样的方式排序,例如:
for row in c2:
sort on row[2]
Run Code Online (Sandbox Code Playgroud)
结果将是:
[[7,8,9],[14,25,46],[1,22,53]]
Run Code Online (Sandbox Code Playgroud)
另一个问题是我如何首先按行排序[2]并在行集[1]内排序
我有两个同名的Const; 一个是全局const,另一个是在命名空间Admin下定义的.但是我需要区分它们;全局的已经定义了,如果还没有定义,那么作用域需要自动定义:
A = 'A Global Const'
module Admin
A = 'A Const within the Admin namespace' if const_defined? 'A' # always true and the Admin::A can never be defined!
end
puts A # => 'A Global Const'
puts Admin::A # => NameError: uninitialized constant Admin::A
# the Admin::A will never be defined.
Run Code Online (Sandbox Code Playgroud)
但如果定义了全局A,那么"const_defind?" 部分将永远回归!
我甚至尝试过:
... if defined? A
... if self.const_defined? 'A'
... if Object.const_get('Admin').const_defined? 'A'
Run Code Online (Sandbox Code Playgroud)
总是如此!
我需要区分它们,因为我需要使用A中的A和Admin :: A两种形式;
像PostsController一样供公众使用,Admin :: PostsController供管理员使用;
救命!
Common Lisp中有一种简单的方法可以合并两个plist吗?或者从另一个角度来看:有没有办法从plist中删除重复项?我知道我可以添加plists(并且GETF将采用它找到的第一个),但我不想在我的应用程序运行时继续累积未使用的密钥.
我在想类似的东西(loop for p on my-plist by #'cddr ...)
,但通常比我的第一个想法更简单!
在C#中,你可以隐式地连接一个字符串,让我们说一个整数:
string sth = "something" + 0;
Run Code Online (Sandbox Code Playgroud)
我的问题是:
为什么,假设您可以隐式地连接字符串和int,C#不允许初始化字符串,如下所示:
string sth = 0; // Error: Cannot convert source type 'int' to target type 'string'
Run Code Online (Sandbox Code Playgroud)C#如何将0转换为字符串.它是0.ToString()
或者(string)0
还是其他什么东西?
我正在尝试在Oracle中创建一个用户定义的函数,当给定包含日期子字符串的文本参数时,它将返回DATE.我已经尝试了几种写这个方法,似乎都抛出了同样的错误:
CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in IN VARCHAR2(50))
RETURN DATE DETERMINISTIC IS
BEGIN
RETURN(TO_DATE(REGEXP_REPLACE(lm_date_in, '([[:digit:]]{2})[-/.]*([[:digit:]]{2})[-/.]*([[:digit:]]{4})','\3-\1-\2'), 'YYYY-MM-DD'));
END;
Run Code Online (Sandbox Code Playgroud)
错误:
功能lm_date_convert已编译.1/46
PLS-00103:遇到以下其中一项时遇到符号"(")::=.),@%default character符号":="代替"("继续.
欢迎任何关于此的想法,以及一般的UDF写作技巧(以及好的参考资料)!谢谢.
这就是我要的:
foreach($_POST['something'] as $something){
foreach($_POST['example'] as $example){
$query = mysql_query("INSERT INTO table (row, row2) VALUES ('{$something}','{$example}')");
}
}
Run Code Online (Sandbox Code Playgroud)
$_POST['something']
并且$_POST['example']
是来自输入的数组
name="something[]"
和name="example[]"
.
问题:
通过这种方式,我将数据两次发送到数据库.所以我需要一个解决方案,我可以循环使用2个数组而不需要两次数据.
编辑