小编MrD*_*Duk的帖子

Smalltalk中是否有+ =?或类似的东西?

例如,想做类似的东西myVal += theAmount- 在smalltalk中有类似的东西吗?我找不到任何东西.

smalltalk

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

Smalltalk 和垃圾收集

Smalltalk 有自动垃圾收集功能吗?那么,这是不是说我可以做如下的事情而不会产生意想不到的副作用?

transactions := Set new.
transactions add: tran1.
transactions add: tran2.
transactions add: tran3.
transactions add: tran4.
...
transactions add: tran899.
transactions add: tran900.

|||  ~~ Do some stuff ~~  |||

transactions post.
transactions := Set new.
Run Code Online (Sandbox Code Playgroud)

garbage-collection smalltalk

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

<=>如何为不同的排序策略工作?

我正在阅读有关CodeAcademy的一些教程,并遇到了这种情况:

books = ["Charlie and the Chocolate Factory", "War and Peace", "Utopia", "A Brief History of Time", "A Wrinkle in Time"]

# To sort our books in ascending order, in-place
books.sort! { |firstBook, secondBook| firstBook <=> secondBook }


# Sort your books in descending order, in-place below
# this lin initially left blank
books.sort! {|firstBook, secondBook| secondBook <=> firstBook}
Run Code Online (Sandbox Code Playgroud)

而不是使用if/ elseblocks,我给了它一个镜头,它工作,但我不知道为什么.我假设您将物品放在支票中的顺序无关紧要(即,a <=> b对比b <=> a).有人能解释一下这里发生了什么吗?

ruby

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

使用<=>而不仅仅是排序和反转是否有好处?

这样做有什么好处(如果有的话):

books.sort! { |firstBook, secondBook| secondBook <=> firstBook }

与:

books.sort!.reverse!

第二个选项似乎更清晰,更容易理解..

编辑:我想这可能是一个问题,除了1对1排序之外,<=>运算符的其他用途是什么?

ruby

3
推荐指数
2
解决办法
67
查看次数

当mmap()使用JPG文件时,为什么会出现内存错误?

我有以下代码部分:

char*
Sender::PrepareData(char* filename, unsigned long long int bytesToTransfer)
{
    int fd, pagesize;
    char *data;

    ifstream file(filename, ios::binary | ios::ate);
    int size = file.tellg();
    cout << "File Size: " << size << endl;

    if(size < bytesToTransfer)
        {cout << "File smaller than specified number of bytes {" << bytesToTransfer << "} to transfer -- Exiting!\n"; exit(1);}

    fd = open(filename, O_RDONLY);
    if (fd==NULL) {fputs ("File error",stderr); exit (1);}

    cout << "File Open: " << filename << endl;

    pagesize = getpagesize();
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ arrays file-io mmap

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

为什么我的 Docker 容器在启动后没有将控制权返回给终端?

我有一个用于导出 Env 变量的 shell 脚本。这个脚本调用一个 python 脚本来从我需要在运行我的主要 python 脚本之前存储的 web 服务中获取某些值。

我试过使用 a RUN . /bot/env/setenv.sh,但这似乎并没有使 env 变量在最终容器中可用。我试过将内容放在entrypoint.sh以 call 结尾的文件中python jbot.py,但容器从未完成其设置(我假设是因为入口点内的脚本是一个连续循环?)

我的entrypoint.sh看起来像这样:

#!/bin/bash
. /jirabot/env/setenv.sh
python jbot.py
Run Code Online (Sandbox Code Playgroud)

而这setenv.sh只是:

#!/bin/bash
export SLACK_BOT_TOKEN="xoxb-token"
export BOT_ID=`python env/print_bot_id.py ${SLACK_BOT_TOKEN}`
Run Code Online (Sandbox Code Playgroud)

我的完整 Dockerfile 是:

FROM python:2

COPY jirabot/ /jirabot/
RUN pip install slackclient schedule jira
WORKDIR /jirabot
#CMD [ "python", "jbot.py" ]
ENTRYPOINT [ "/jirabot/entrypoint.sh" ]
Run Code Online (Sandbox Code Playgroud)

当我这样做时docker run bot,我可以验证应用程序是否正在运行(机器人适当地响应我的请求)。但是,输出中没有包含其中的所有print()语句jbot.py——所以我有两个主要问题:

  1. 为什么我entrypoint.sh …

python bash shell docker dockerfile

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

是否允许将空值插入C++ std :: map?

我正在考虑一个棋盘设计,并想做一些事情:

typedef std::map <std::string, CheckerPiece> MapType;
MapType CheckerBoard;

CheckerBoard.insert({"a1", null});
Run Code Online (Sandbox Code Playgroud)

这是允许的,还是有办法做类似的事情?我的想法是,我想保持一个板状态,同时将CheckerPiece对象从一个位置移动到另一个位置.

编辑: 沿着相同的路线,是否可以执行以下操作:

CheckerBoard.insert({"a1", new CheckerPiece()});
Run Code Online (Sandbox Code Playgroud)

c++ stdmap std

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

Smalltalk - 获取字符串的值

我试图找到一个字符串的值.例如,:

'abc' == 6  (1+2+3)
Run Code Online (Sandbox Code Playgroud)

但我在下面的'+元素'部分收到错误:

MessageNotUnderstood: Character>>adaptToNumber:andSend:
Run Code Online (Sandbox Code Playgroud)

有人可以帮我一把吗?

wordValue: inString
    |value|
    inString asUppercase.

    value := (inString do: [ :ch | inString inject: (ch asciiValue- 64) into: [ :sum :element | sum + element ]]) asInteger.
    ^value.
Run Code Online (Sandbox Code Playgroud)

smalltalk

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

Smalltalk - 海边报道

我将我的事务添加到字典中,使用UUID作为键,将事务对象作为值 - 这就是我所说的ledger:

实施例(entriesForPosting是一个SetArrayS,各自含有信用条目和借记):

   postToGL
    entriesForPosting do: [ :ea | GeneralLedger ledger at: (ea at: 1) mUID put: (ea at: 1).  "credit"
                                  GeneralLedger ledger at:(ea at: 2) mUID put: (ea at: 2) ].  "debit"
Run Code Online (Sandbox Code Playgroud)

然后我们报告这个分类帐:

renderReport
    GLReport := WATableReport new
        rows: GeneralLedger getGLPostings asOrderedCollection ;
        columns: (OrderedCollection new
            add: (WAReportColumn
                renderBlock: [ :each :html | html emphasis: each  ]
                title: 'ID');
            add: (WAReportColumn
                renderBlock: [ :each :html | html emphasis: (GeneralLedger getTransactionByID: each) mDate …
Run Code Online (Sandbox Code Playgroud)

smalltalk seaside

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

将 JSON 对象从 requests.get() 转换为 dict

我正在从一个 url 中提取一个 json 对象:

import requests
r = requests.get('http://my.endpoint.com/Hardware.json')
Run Code Online (Sandbox Code Playgroud)

现在我需要将它从 转换r.json()为 a dict,以便我可以将它作为文档插入到 MongoDB (我想。我是 Mongo 的新手,所以)。

当我尝试:

import json
d = json.loads(r.json())
Run Code Online (Sandbox Code Playgroud)

它失败了:

类型错误:预期的字符串或缓冲区

最终,我只想要一个可以MongoClient().test.hosts.insert_one()作为新文档传入的对象类型,从pymongo.

python json mongodb python-2.7 python-requests

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