小编Pte*_*tyl的帖子

如何将 32 位 PNG 转换为 RGB565?

我怎样才能做到这一点?程序化解决方案 (Objective-c) 很棒,但即使是非程序化解决方案也不错。

我有 pixelmator -> 但这并没有给你选择。我似乎也无法使用预览来做到这一点。

我试过谷歌搜索,但到目前为止还没有找到解决方案。我能够用来执行此操作的唯一工具是 TexturePacker,但它会创建一个精灵表。

compression macos png objective-c cocos2d-iphone

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

为什么在 Dart 的列表定义中使用 if 和 for?

Dart 支持在创建列表期间使用“if”和“for”:

var nav = [
  'Home',
  'Furniture',
  'Plants',
  if (promoActive) 'Outlet'
];
Run Code Online (Sandbox Code Playgroud)

和:

var listOfInts = [1, 2, 3];
var listOfStrings = [
  '#0',
  for (var i in listOfInts) '#$i'
];
assert(listOfStrings[1] == '#1');
Run Code Online (Sandbox Code Playgroud)

这有什么意义?它比创建一个列表,然后像其他编程语言一样附加到它有什么好处:

var nav = [
  'Home',
  'Furniture',
  'Plants',
];

if (promoActive) nav.add('Outlet');
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

What does a , operator do when used in the right hand side of a conditional?

a = 10
b = 20
c = 30
if(a > b,c):
    print('In if')
else:
    print('In else')
Run Code Online (Sandbox Code Playgroud)

Someone posted the above piece of code, and asked why the above always results in 'In if', being printed regardless of the values of b and c.

虽然这看起来像是糟糕的编程风格,但我很好奇,操作员在做什么。

到目前为止,我还没有在文档中找到答案。任何人都可以提供解释吗?

python python-3.x

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

$inc 修饰符如何处理 mongodb 中的并发请求?

修饰符$inc可用于增加字段(例如用于分析的计数器、页面浏览量等)。

如果有并发请求,它如何工作?

假设我有文件:

{ "views" : 1 }
Run Code Online (Sandbox Code Playgroud)

如果有两个并发请求使用 会发生什么$inc?观看次数是 2 还是 3?

mongodb mongodb-query

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

如何强制从重写方法调用重写方法基方法?

我有一堂课:

class MyCoolBean {

public:

    virtual void toot(){
        log("ooh la la");
    }
}
Run Code Online (Sandbox Code Playgroud)

而我的派生类:

class MyCoolBeansBoy : public MyCoolBean{
public:
    void toot()override{
        log("oh yeah");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我做:

MyCoolBeansBoy boi; boi.toot();

输出是:

oh yeah
Run Code Online (Sandbox Code Playgroud)

但我希望输出是:

ooh la la
oh yeah
Run Code Online (Sandbox Code Playgroud)

现在我知道我可以将派生函数修改为:

    void toot()override{
        MyCoolBean::toot();
        log("oh yeah");
    }
Run Code Online (Sandbox Code Playgroud)

但是如果我这样做,那么任何实现派生类的人都可以简单地忘记。反正有没有强迫MyCoolBean::toot()被调用?

编辑:我知道这在技术上是可行的,因为这些问题的答案是:

如何确保类的每个方法首先调用其他方法?

上面链接中的解决方案可以用来强制所有函数调用一个成员函数!我的问题是如何仅针对覆盖方法执行此操作,并专门调用基本方法!:)

c++ c++11

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

为什么我的 lambda 按值捕获指针?

我有以下 lambda

    direction->addClickEventListener([=](Ref* sender){

        std::unordered_map<int,int> data;
        rep->getData(DIRECTION, data);
        int last = data[1];
        int rotation = (last + 45)%360;

        LOG("l:%i r:%i",last,rotation);//Always logs l:0 r:45
        direction->setRotation(rotation);
        data[1] = rotation;
        rep->setData(DIRECTION, data);
    });
Run Code Online (Sandbox Code Playgroud)

getData 在哪里:

void getData(DATA_KEY key,std::unordered_map<int,int>& data){
//Modifies data with the appropriate values for key, for the current state of rep
}

void setData(DATA_KEY key,std::unordered_map<int,int>& data){
//Makes a copy of data stores it internally with key
}
Run Code Online (Sandbox Code Playgroud)

rep 是指针,所以我认为每当调用 lambda 时,数据的当前值将始终反映 rep 的当前状态。但似乎它始终是调用 direction->addClickEventListener 时任何 rep 的值。

如果我想使用 rep 的当前状态,我该如何修改我的 lambda …

lambda c++11

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