小编Her*_*nan的帖子

使用cmake强制使用最新的gcc

我正在将一个小应用程序部署到需要编译的几个不同系统(mac,linux,linux64).我想告诉cmake在特定系统中可用的最新gcc.例如,Mac 10.6具有gcc 4.0和gcc 4.2(默认值).但是有些用户也通过MacPorts安装了gcc 4.4(它不是默认设置).在这种情况下,我希望cmake使用gcc44.在其他Linux系统中,最新的gcc是4.4或4.5.实现这一目标的更强大的方法是什么?

谢谢,

H

gcc g++ version cmake

3
推荐指数
1
解决办法
5995
查看次数

将帅哥重组为提交

我对一些代码进行了重大的重构,在此过程中,我多次提交。尚未将其推送到任何公共仓库。在推送之前,我现在想将提交重新组织成逻辑单元。问题是我不仅要压缩提交内容,还希望将大块重新组织为其他提交内容。

为了清楚起见,我将A与B1,B2,B3一起提交,并将B与B1,B2,B3进行。我想签出A之前的版本,并拥有新的提交C,带有大块A1,A2,B2和新的提交D,带有大块B1,B3,A3。

提前致谢。

git commit squash

2
推荐指数
1
解决办法
1166
查看次数

Firefox 7中的Javascript匿名函数

更新到Firefox 7后,我收到以下错误:

函数语句需要一个名称

这个特定的功能定义为

fun = eval("function (item) { //Function body }");
Run Code Online (Sandbox Code Playgroud)

如果我把它重写为:

fun = eval("function view(item) { //Function body }");
Run Code Online (Sandbox Code Playgroud)

错误不再显示,但程序仍然无法正常工作.

Ps.-我知道评估一个字符串不是一个好主意.这是我必须修复的遗留应用程序,其中一些函数作为字符串按需从数据库下载.

javascript firefox anonymous-function

2
推荐指数
1
解决办法
1316
查看次数

不同Python字典中的键顺序()

可能重复:
Python字典,保持键/值与声明的顺序相同

如果我在一个特定的程序中有两个不同的字典,它们具有相同的键(但值不同),那么.keys()的顺序是否相同?我做了一些测试,似乎是这样,但不知道dict的内部我怎么不确定这是否有保证.

谢谢,

python dictionary

2
推荐指数
1
解决办法
1898
查看次数

理解 Python 3 中的非本地

我试图理解 Python 3 变量范围和nonlocal.

考虑以下函数(这只是一个示例):

def build_property(something):

    def deco(func):

        def getter(self):
            return getattr(self, something)

        def setter(self, value):
            setattr(self, something, value)

        return property(getter, setter)

    return deco
Run Code Online (Sandbox Code Playgroud)

这在没有nonlocal. 但如果现在我想根据something我需要的非本地条件有条件地创建 getter 和 setter。

def build_property(something):

    def deco(func):

        nonlocal something # This is needed

        if something.startswith('A'):
            getter = None
        else:
            def getter(self):
                return getattr(self, something)

        if something.startswith('B'):
            setter = None
        else:
            def setter(self, value):
                setattr(self, something, value)

        return property(getter, setter)

    return deco
Run Code Online (Sandbox Code Playgroud)

为什么nonlocal在一种情况下需要,但在另一种情况下不需要?换句话说,为什么something如果在第一种情况下正确找到(没有nonlocal …

python scoping python-3.x python-nonlocal

2
推荐指数
1
解决办法
5592
查看次数

自动铸造Vec到阵列

在尝试不同的方式发送Vec<u8>到期望的函数时&[u8],我犯了一个实际上有效的"错误".我写了一些示例代码来说明这一点:

fn sum(v: &[u8]) -> u8 {
    let mut s = 0u8;
    for x in v.iter() {
        s = s + x;
    }
    return s;
}

fn main() {
    let myarr = [1u8, 2u8, 3u8];
    let myvec = vec![1u8, 2u8, 3u8];

    println!("{}", sum(&myarr));
    println!("{}", sum(&myvec));
}
Run Code Online (Sandbox Code Playgroud)

我有几个与此有关的问题:

  • 为什么以及如何运作?
  • 这两种类型之间是否有自动投射?
  • 它是否会受到任何惩罚,或者只是占用了向量的底层数组的内存位置?
  • 这是否意味着对于这种类型的使用(对数字数组的只读操作)最好使用数组而不是向量作为API?

arrays casting vector rust

2
推荐指数
1
解决办法
348
查看次数

了解嵌入Go

我正在尝试了解Google Go的嵌入机制(作为子类化的替代方法).下面是一个简单的程序,总结了我的方法问题:

package main

import "fmt"

type Person struct {
    Name string
}

func (p *Person) Talk() {
    fmt.Println("Hi, my name is Person")
}

func (p *Person) TalkVia() {
    fmt.Println("TalkVia ->")
    p.Talk()
}

type Android struct {
    Person
}

func (p *Android) Talk() {
    fmt.Println("Hi, my name is Android")
}

func main() {
    fmt.Println("Person")
    p := new(Person)
    p.Talk()
    p.TalkVia()

    fmt.Println("Android")
    a := new(Android)
    a.Talk()
    a.TalkVia()
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Person
Hi, my name is Person
TalkVia ->
Hi, my name is Person …
Run Code Online (Sandbox Code Playgroud)

embedding go subclassing

1
推荐指数
1
解决办法
208
查看次数