在Objective-C(至少是Obj-C的Apple风味)中,为什么SEL不是一个类?这是效率问题吗?它是为了防止某种无限递归吗?是否只是没有动力让SEL上课?猜测欢迎,但如果答案是历史真相或猜测,请告诉我.
我在想这样的场景:
class Utopia => 一个基类,它将字段和方法传递给派生类.
class Watashi => 派生类,派生自Utopia并继承所有内容
class Baka => 派生类,从Utopia继承一些字段
上面有一些类型和类型Baka应该继承一些特定的字段和方法,但如何?我怎样才能指定只有Baka会继承的字段和方法,而Watashi从Utopia继承了一切.
示例代码:
class Utopia {
public string Moshi;
[Exclude(ClassName("Baka"))]
public string HaveIt;
}
class Baka : Utopia
{
// only Moshi appears here
base.[Moshi]
}
class Watashi : Utopia
{
base.[Moshi][HaveIt];
}
Run Code Online (Sandbox Code Playgroud)
如果我想使用多态性:
Utopia _utopiaBaka = new Baka();
_utop.[Moshi];
Utopia _utopiaWatashi = new Watashi();
_utopiaWatashi.[Moshi][HaveIt];
Run Code Online (Sandbox Code Playgroud)
当然,Framework还会检查派生类是否是其他类型的基类.
我正在编写一个连接到网站的java程序,它返回HTML,由于某种原因我遇到了问题.现在我只能访问该网站
//example String host = "www.google.com"
Run Code Online (Sandbox Code Playgroud)
但如果我想访问一个更复杂的URL,那么我得到一个UnknownHostException.起初我以为它可能与它有关,但没有识别URL中的某些字符,但我不确定.例如,这是我尝试访问的URL之一.
host ="http://www.cyberspacei.com/englishwiz/library/name/etymology_of_first_names.htm";
int port = 80;
Socket s = new Socket(host,port)
Run Code Online (Sandbox Code Playgroud)
....等等
它除了UnknownHostException之外不会返回任何内容.
有人请帮帮我!!!
当我偶然发现这个名为JSpeed的项目 - Javascript优化时,我正在浏览Google Code.
我注意到优化的一个是改变i++以++i在for循环语句.
优化之前
for (i=0;i<1;i++) {}
for (var i = 0, j = 0; i < 1000000; i++, j++) {
if (i == 4) {
var tmp = i / 2;
}
if ((i % 2) == 0) {
var tmp = i / 2;
i++;
}
}
var arr = new Array(1000000);
for (i = 0; i < arr.length; i++) {}
Run Code Online (Sandbox Code Playgroud)
优化后
for(var i=0;i<1;++i){}
for(var i=0,j=0;i<1000000;++i,++j){if(i==4){var tmp=i>>1;}
if((i&1)==0){var tmp=i>>1;i++;}}
var arr=new Array(1000000);for(var …Run Code Online (Sandbox Code Playgroud) 我试图提出一个解决方案,但是徒劳无功.任何指导将不胜感激.
_data_
mascot
friend
ocean
\n
parsimon
**QUERY**
apple
\n
jujube
\n
apricot
maple
**QUERY**
rose
mahonia
\n
Run Code Online (Sandbox Code Playgroud)
....鉴于搜索关键字是QUERY,它将输出:
parsimon
**QUERY**
apple
apricot
maple
**QUERY**
rose
mahonia
Run Code Online (Sandbox Code Playgroud)
我编写的代码不能按我的意愿运行:
#!/usr/bin/perl
use strict;
use warnings;
open my $fh, '<', 'FILE' or die "Cannot open: $!";
my @file = <$fh>;
close $fh;
for (0 .. $#file) { # read from the first line to the last
if($file[$_] =~ /QUERY/){ # if the contents of a particular line matches the query pattern …Run Code Online (Sandbox Code Playgroud) void foobar(Base* base)
{
Derived* derived = dynamic_cast<Derived*>(base); // or static_cast
derived->blabla = 0xC0FFEE;
if (base->blabla == 0xC0FFEE)
...
}
Run Code Online (Sandbox Code Playgroud)
在具有严格别名的编译器上,"派生"是"base"的别名吗?
我在python中写了一个post commit脚本,"c:\ myfolder\myscript.py".我想从post-commit脚本调用它.这找不到:
#!/bin/sh
c:\myfolder\myscript.py
Run Code Online (Sandbox Code Playgroud)
bash认为命令c:myfoldermyscript.py - 斜线被丢弃.
所以,我尝试了正斜杠:
#!/bin/sh
c:/myfolder/myscript.py
Run Code Online (Sandbox Code Playgroud)
但是,似乎bash认为我的.py文件本身就是一个bash脚本,所以我得到了bash错误,因为它错误地试图解释它.
我正在尝试将图像上传到PingFM.他们的文件说:
media – base64 encoded media data.
Run Code Online (Sandbox Code Playgroud)
我可以通过URL访问此图像.我试过(几乎猜到了)这个:
ActiveSupport::Base64.encode64(open("http://image.com/img.jpg"))
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
TypeError: can't convert Tempfile into String
from /usr/lib/ruby/1.8/base64.rb:97:in `pack'
from /usr/lib/ruby/1.8/base64.rb:97:in `encode64'
from (irb):19
from :0
Run Code Online (Sandbox Code Playgroud) 我什么时候应该使用OOP而不是数组?我的项目规模是否重要?
提供一点背景:我正在为我的朋友制作一个小程序.基本上,他希望彼此添加不同的分数,以便能够看到他的成绩.(是的,我知道有商业软件,但这也是一个有趣的练习.)无论如何,他可能不时希望程序重新计算所有分数,所以我必须阅读之前的条目.我是更熟悉数组,所以我打算使用它们,但OOP可能是一个同样好的工具.所以,基本上,我什么时候应该使用OOP?
我有一张桌子:
Message (MessageID int, Subject nvarchar(100), Body nvarchar(max))
Run Code Online (Sandbox Code Playgroud)
在UI上更新消息后,我调用存储过程来更新该表.在某些情况下,用户可能只更新主题,在其他情况下只是正文.我希望这个存储过程仅更新已更改的内容,因此我还会传递标记,显示主题或正文是否已更新:
create proc UpdateMessage(
@MessageID int,
@Subject nvarchar(100),
@Body nvarchar(max),
@SubjectChanged bit,
@BodyChanged bit)
Run Code Online (Sandbox Code Playgroud)
现在我很困惑如何构建条件UPDATE语句.我的第一个想法是使用CASE:
Update [Message]
SET
CASE WHEN @SubjectChanged = 1 THEN [Subject] = @Subject ELSE 1=1 END,
CASE WHEN @BodyChanged = 1 THEN Body = @Body ELSE 1=1 END,
WHERE MessageID = @MessageID
Run Code Online (Sandbox Code Playgroud)
......但这似乎不是一个正确的语法,因为CASE它必须是一个分配的右侧.
任何想法我怎么能这样做?(请记住,实际上有6个参数可以更新,而不是两个)
c++ ×2
arrays ×1
base64 ×1
bash ×1
c# ×1
class ×1
encode ×1
git ×1
html ×1
html-parsing ×1
increment ×1
inheritance ×1
java ×1
javascript ×1
msysgit ×1
objective-c ×1
oop ×1
optimization ×1
perl ×1
ruby ×1
sql ×1
sql-server ×1
sql-update ×1
t-sql ×1