I have a variable with string type. For example string test;.
How many character i can set for test? Thanks.
There are 2 functions involved.
$array = array("first", "second", "third", "fourth");
foreach($array as $i=> $string) {
if(stristr($string, "e")) {
unset($array[$i]);
}
}
Run Code Online (Sandbox Code Playgroud)
second是具有字符"e"的数组项.如果它unset,$array[1]将留空:
$array[0] = "first"
$array[1] = ""
$array[2] = "third"
$array[3] = "fourth"
Run Code Online (Sandbox Code Playgroud)
我想$array[1]从阵列(如在除去array_shift()),从而使third需要的地方second和fourth的地方third:
$array[0] = "first"
$array[1] = "third"
$array[2] = "fourth"
Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用Core Data和一个应用程序的应用程序NSFetchedResultsController.模型设置如下:
/-----------\ /-----------\ /-----------\
|Part | |Kit | |Source |
|-----------| |-----------| |-----------|
|name | |name | |name |
|dimensions | |description| |location |
|... | |... | |... |
|-----------| |-----------| |-----------|
|kits | <<-\ |source | <<-----1 |kits |
| | \->> |parts | | |
\-----------/ \-----------/ \-----------/
Run Code Online (Sandbox Code Playgroud)
因此,a与a Part具有多对多的关系Kit(一个部件可以在一个或多个套件中,并且套件可以包含一个或多个部件).并且每个Kit来自Source可以提供一个或多个Kits的a.
我目前正在创建一个UITableView使用NSFetchedResultsController带有所有Part对象的简单列表的.我想将这些部分分成几个部分,每个部分都是一个Source名字.即:
|-------------------------------|
|Source One |
|-------------------------------|
|Part …Run Code Online (Sandbox Code Playgroud) 你能告诉我如何正确测试正则表达式代码吗?
我使用以下代码测试我的用户登录属性:
# user.rb
class User < ActiveRecord::Base
#...
validates_format_of :login, :with => /^[a-zA-z0-9_.]{3,18}$/
end
# user_spec.rb
describe User do
before(:each) do
@user = Factory.build(:user)
@user.save
end
subject { @user }
it { should be_valid }
it { should_not allow_value("b lah").for(:login) }
it { should_not allow_value("bälah").for(:login) }
it { should_not allow_value("b@lah").for(:login) }
it { should_not allow_value("bülah").for(:login) }
it { should_not allow_value("bßlah").for(:login) }
it { should_not allow_value("b!lah").for(:login) }
it { should_not allow_value("b%lah").for(:login) }
it { should_not allow_value("b)lah").for(:login) }
# ....
# …Run Code Online (Sandbox Code Playgroud) 我的直觉是,在这样的匿名函数中封装代码块是个好主意:
(function() {
var aVar;
aVar.func = function() { alert('ronk'); };
aVar.mem = 5;
})();
Run Code Online (Sandbox Code Playgroud)
因为我不再需要aVar了,所以我假设垃圾收集器会aVar在超出范围时删除.这是正确的吗?或者是口译员足够聪明,看到我不再使用变量并立即清理它?是否有任何理由,如风格或可读性,我应该不使用匿名函数这种方式?
另外,如果我命名函数,如下所示:
var operations = function() {
var aVar;
aVar.func = function() { alert('ronk'); };
aVar.mem = 5;
};
operations();
Run Code Online (Sandbox Code Playgroud)
不operations那么必然留下来,直到它超出范围?或者口译员可以立即告诉它何时不再需要?
我还想澄清一点,我不一定谈论全球范围.考虑一个看起来像的块
(function() {
var date = new Date(); // I want to keep this around indefinitely
// And even thought date is private, it will be accessible via this HTML node
// to other scripts. …Run Code Online (Sandbox Code Playgroud) 在ruby中你可以像这样做条件块
block do |n|
puts n
end if foo == bar
Run Code Online (Sandbox Code Playgroud)
这将转化为erb as
<% block do |n| %>
<%= n %>
<% end if foo == bar %>
Run Code Online (Sandbox Code Playgroud)
有没有办法在haml中实现这一点,而不是在一个条件下包裹块?
问候,
我有一个应用程序,其中Companies和Users需要通过一个CompanyMembership模型相互拥有,该模型包含有关成员资格的额外信息(具体来说,用户是否是公司的管理员,通过布尔值admin).一个简单的代码版本:
class CompanyMembership < ActiveRecord::Base
belongs_to :company
belongs_to :user
end
class Company < ActiveRecord::Base
has_many :company_memberships
has_many :users, :through => :company_memberships
end
class User < ActiveRecord::Base
has_many :company_memberships
has_many :companies, :through => :company_memberships
end
Run Code Online (Sandbox Code Playgroud)
当然,这使得通过公司company.users.all等所有成员获得简单.但是,我正在尝试获取公司中所有用户的列表,这些用户是该公司的管理员(并且还要测试用户是否是给定公司的管理员).我的第一个解决方案如下company.rb:
def admins
company_memberships.where(:admin => true).collect do |membership|
membership.user
end
end
def is_admin?(user)
admins.include? user
end
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它的效率却很低(它会迭代每个成员资格,每次都执行SQL,对吗?或者是比这更聪明的关系吗?),我不确定是否有更好的方法来解决这个问题(可能使用范围或RelationRails 3使用的花哨的新对象?).
任何关于最佳处理方式的建议(最好使用Rails 3最佳实践)将不胜感激!
我有一个LINQ表达式,正在减慢我的应用程序.我正在绘制一个控件,但为了做到这一点,我需要知道将出现在我的列中的文本的最大宽度.
我这样做的方式是这样的:
return Items.Max(w => TextRenderer.MeasureText((w.RenatlUnit == null)? "" :
w.RenatlUnit.UnitNumber, this.Font).Width) + 2;
Run Code Online (Sandbox Code Playgroud)
但是,这会迭代大约1000个项目,并占用我绘图方法中使用的CPU时间的大约20%.更糟糕的是,还有两个必须完成的列,因此所有项/列上的LINQ语句占用了大约75-85%的CPU时间.
TextRenderer来自System.Windows.Forms包,因为我没有使用等宽字体,所以需要使用MeasureText来计算字符串的像素宽度.
我怎么能让这更快?
我有以下代码.
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<div id="hello">Hello <div>Child-Of-Hello</div></div>
<br />
<div id="goodbye">Goodbye <div>Child-Of-Goodbye</div></div>
<script type="text/javascript">
<!--
function fun(evt) {
var target = $(evt.target);
if ($('div#hello').parents(target).length) {
alert('Your clicked element is having div#hello as parent');
}
}
$(document).bind('click', fun);
-->
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望只有在Child-Of-Hello被点击时,$('div#hello').parents(target).length才会返回> 0.
但是,只要我点击任何地方,它就会发生.
我的代码有问题吗?
我对访问一个字段的一般问题很感兴趣,该字段可能埋藏在包含结构中的任意数量的级别.下面是使用两个级别的具体示例.
假设我有一个结构toplevel,我在MATLAB命令行中定义了以下结构:
midlevel.bottomlevel = 'foo';
toplevel.midlevel = midlevel;
Run Code Online (Sandbox Code Playgroud)
我可以midlevel通过将字段名称作为字符串传递来访问结构,例如:
fieldnameToAccess = 'midlevel';
value = toplevel.(fieldnameToAccess);
Run Code Online (Sandbox Code Playgroud)
但我无法bottomlevel以相同的方式访问结构 - 以下是无效的语法:
fieldnameToAccess = 'midlevel.bottomlevel';
value = toplevel.(fieldnameToAccess); %# throws ??? Reference to non-existent field 'midlevel.bottomlevel'
Run Code Online (Sandbox Code Playgroud)
我可以编写一个fieldnameToAccess查看句点的函数,然后递归迭代以获得所需的字段,但我想知道是否有一些聪明的方法来使用MATLAB内置函数来直接获取字段值.