在Ruby中,对象有一个方便的方法method_missing,允许人们处理甚至没有(显式)定义的方法的方法调用:
当obj被发送一个它无法处理的消息时,由Ruby调用.symbol是被调用方法的符号,args是传递给它的任何参数.默认情况下,解释器在调用此方法时会引发错误.但是,可以覆盖该方法以提供更多动态行为.下面的示例创建一个类Roman,它响应名称由罗马数字组成的方法,返回相应的整数值.
class Roman
def romanToInt(str)
# ...
end
def method_missing(methId)
str = methId.id2name
romanToInt(str)
end
end
r = Roman.new
r.iv #=> 4
r.xxiii #=> 23
r.mm #=> 2000
Run Code Online (Sandbox Code Playgroud)
例如,Ruby on Rails使用它来允许调用诸如的方法find_by_my_column_name.
我的问题是,其他语言支持的等价物method_missing,以及如何在代码中实现等效语言?
使用cron任务向网络上的所有用户发送每日更新电子邮件的最佳方法究竟是什么?电子邮件将由来自多个模型的不同信息组成.
我想从请求模型和用户模型中做一些类似"1个新朋友请求:名字 ..."的事情和"来自你的朋友的3个即将发生的事件:由名称托管的事件名称 ......"来自事件和用户模型.
我意识到这是一项常见的任务,但我没有看到太多关于它的信息,所以任何关于做这样的事情的一般提示都将不胜感激!
旁注:如果重要的话,我将使用Heroku每日cron插件来实现这一点(尽管我认为不应该).
如果我在XAML中使用以下内容,则会收到错误消息:
<Style TargetType="TreeViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Selected}" Value="True">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightColor}}"/>
</DataTrigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
错误是:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='#FF316AC5'
Run Code Online (Sandbox Code Playgroud) 我正在构建一个VS包,我正在尝试从包中发送命令到Visual Studio,以在新选项卡中打开用户选择的文件(就像用户通过转到文件 - >打开一样. ..).
我记得在某些方面看到如何做到这一点.有人能刷新我的记忆吗?
在我的XML模式定义中,我试图将属性的值限制为0到100之间的整数.
参考下面的示例模式,我希望元素'root'上的属性'attr'具有此限制.为此,我定义了一个simpleType'Percentage'并将其设置为'attr'的'type'.
但是,我的XML模式编辑器(VS 2008)将属性标记为有问题:"类型'百分比'未声明或不是简单类型".
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" id="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://testtttt">
<xs:simpleType name="Percentage">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="root">
<xs:complexType>
<xs:attribute name="attr" type="Percentage" use="optional" />
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
在VS 2008/SDK 6.0中,我使用XSD实用程序的/ t选项从现有程序集/类中自动生成XSD文件.使用VS 2010 和 SDK 7.0时,这不再起作用,因为XSD.EXE无法处理新的Framework 4.0程序集.它声称是一个Framework 2.0工具,无法处理较新运行时的程序集.
我的错误在哪里?
Paypal成功返回我在创建立即购买按钮时指定的返回网址.但是,现在我很困惑.如何检索有关Paypal上发生的交易的详细信息?我还想在返回URL上设置一些数据库值.但我担心,如果我的用户没有支付PayPal到该网址,那么他也将成为高级会员.我如何确保这一点?
为我的CPython扩展类型实现!=和==,我应该实现tp_compare,tp_richcompare还是两者兼而有之?
在什么情况下他们都被称为?
我如何在Python中打开二进制数据文件并一次一个地读回值long
到结构中.我现在有这样的东西,但我认为这将继续覆盖idList,我想追加它,所以我最终long得到文件中所有值的元组-
file = open(filename, "rb")
try:
bytes_read = file.read(struct.calcsize("=l"))
while bytes_read:
# Read 4 bytes(long integer)
idList = struct.unpack("=l", bytes_read)
bytes_read = file.read(struct.calcsize("=l"))
finally:
file.close()
Run Code Online (Sandbox Code Playgroud) python ×2
xsd ×2
actionmailer ×1
binaryfiles ×1
bittorrent ×1
c# ×1
cpython ×1
cron ×1
file-io ×1
migration ×1
paypal ×1
php ×1
simpletype ×1
struct ×1
systemcolors ×1
wpf ×1