作为回答另一个问题的一部分,我写了下面的代码,其行为乍一看似乎很奇怪:
print True # outputs true
True = False; print True # outputs false
True = True; print True # outputs false
True = not True; print True # outputs true
Run Code Online (Sandbox Code Playgroud)
谁能解释这种奇怪的行为?我认为这与Python的对象模型有关,但我不确定.
它是Cygwin下的2.5.2版本.
该__attribute__指令是否适用于在一行上声明的所有成员?
int a, b, c;
Run Code Online (Sandbox Code Playgroud)
声明三个int变量.
int *a, b, c;
Run Code Online (Sandbox Code Playgroud)
声明变量"a"作为指向int的指针,b和c声明为int.
int __attribute__((used)) a, b, c;
Run Code Online (Sandbox Code Playgroud)
该used属性是应用于所有变量还是仅适用于a?
我正在尝试编写几行代码来制作不区分大小写的数组唯一类型函数.这是我到目前为止所拥有的:
foreach ($topics as $value) {
$lvalue = strtolower($value);
$uvalue = strtolower($value);
if (in_array($value, $topics) == FALSE || in_array($lvalue, $topics) == FALSE || in_array($uvalue, $topics) == FALSE) {
array_push($utopics, $value);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是if语句.我认为我的语法有问题,但我对PHP比较新,我不确定它是什么.有帮助吗?
有没有办法构造一个XPath来评估元素的值是否在预定义的值列表中?类似于此的东西:
/Location/Addr[State='TX or AL or MA']
Run Code Online (Sandbox Code Playgroud)
哪个匹配德克萨斯州,阿拉巴马州或马萨诸塞州的州元素?我知道我可以解压缩表达式:
/Location/Addr[State='TX] or /Location/Addr[State='AL'], etc...
Run Code Online (Sandbox Code Playgroud)
但这有点麻烦,因为xpath很长,值列表也是如此.我的google-fu在这个问题上没有太多关注......
一位顾问昨天来了,不知怎的,字符串的主题出现了.他提到他已经注意到,对于长度小于一定长度的字符串,Contains实际上比它更快StartsWith.我必须用自己的两只眼睛看到它,所以我写了一个小应用程序,当然,Contains更快!
这怎么可能?
DateTime start = DateTime.MinValue;
DateTime end = DateTime.MinValue;
string str = "Hello there";
start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
str.Contains("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms using Contains", end.Subtract(start).Milliseconds);
start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
str.StartsWith("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms using StartsWith", end.Subtract(start).Milliseconds);
Run Code Online (Sandbox Code Playgroud)
输出:
726ms using Contains
865ms using StartsWith
Run Code Online (Sandbox Code Playgroud)
我也尝试过更长的琴弦!
我有一个spec文件.我需要定义一个spec变量,它从系统上的一行文件中获取其值.
例如
%define path `cat /home/user/path_file`
Run Code Online (Sandbox Code Playgroud)
并且在path_file中是一行
/var/www/html/hosts
Run Code Online (Sandbox Code Playgroud)
这部分有效.我说从RPM BUILD输出开始有时值${path}实际上是我的命令cat /home/user/path_file,有时值是path_file(/ var/www/html/hosts)中的行应该是什么?
在我的程序中(用Python 3.4编写)我有一个包含各种标志的变量,例如:
FLAG_ONE = 0b1
FLAG_TWO = 0b10
FLAG_THREE = 0b100
status = FLAG_ONE | FLAG_TWO | FLAG_THREE
Run Code Online (Sandbox Code Playgroud)
可以轻松地设置另一个标志
status |= FLAG_FOUR
Run Code Online (Sandbox Code Playgroud)
但是,如果我明确要清除旗帜呢?我会做
status &= ~FLAG_THREE
Run Code Online (Sandbox Code Playgroud)
这种方法安全吗?由于未定义Python中整数的大小,因此大小如何status且FLAG_THREE不同?
(status需要有点字段,因为我需要这个值用于硬件协议.)
说一个字符串可能就像"ab''c''d".如何检查字符串中是否包含单/双引号和空格?
我想在Joda-Time设置小时,分钟和秒.但是,当我设定它不改变财产.
这是我的代码:
import org.joda.time.DateTime;
public class JodaAkbar
{
public static void main(String args[])
{
DateTime dt = new DateTime();
System.out.println("Before:"+dt);
dt.hourOfDay().setCopy(5);
dt.minuteOfDay().setCopy(20);
dt.secondOfDay().setCopy(0);
System.out.println("After:"+dt);
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出.
Before:2015-04-01T11:01:38.277+11:00
After:2015-04-01T11:01:38.277+11:00
Run Code Online (Sandbox Code Playgroud)
我得到了相同的输出.这里发生了什么错?
编辑:
基本上,我想做类似的事情,如下面的代码所示.由于以下代码在24小时格式下无法正常工作,我切换到了Joda-Time.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, 13);
cal.set(Calendar.MINUTE, 25);
cal.set(Calendar.SECOND, 0);
Run Code Online (Sandbox Code Playgroud) 假设我们有这 3 个类:
class A { }
class B extends A { }
public class App {
static void f(int i, A a) { }
static void f(float j, B b) { }
static public void main() {
int i = 0;
B b = new B();
App.f(i, b);
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
class A { }
class B extends A { }
public class App {
static void f(int i, A a) { }
static void f(float j, B b) …Run Code Online (Sandbox Code Playgroud)