在Pharo中,我想对整数进行位掩码,在Python中如下所示:
((b1 & 0x3F) << 4) | (b2 >> 4)
Run Code Online (Sandbox Code Playgroud)
我知道这一点,&并且|在Pharo工作,但是我很确定他们不是明智之举。
我与代码的唯一区别是我的类采用点格式,例如auth.Permission:
@startuml
class auth.Permission {
+ id
+ content_type
+ codename
}
class auth.Group {
+ id
+ name
+ permissions
}
auth.Group::permissions -- auth.Permission
@enduml
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,最终结果是错误的:创建了第三个类,而不是在正确的位置绘制关系:https://www.plantuml.com/plantuml/uml/SoWkIImgAStDuKhEIImkLaWiBSdG2qWjoiqiBixCprEevj9Mo4m14idvUIMfUINn9PK5gM1kIcfUOcugLoqN5x9MzwByqWA4Bf0I85K0D x0Of06XqieAIKf1LnVTVYw7rBmKeEi0
我做错了什么?谢谢。
我试图理解synchronized()我在本文末尾写的程序中的块.
有两个线程(o和k)使用共享lock对象作为wait/notify的监视器.
ok在以下synchronized块中等待启动:
synchronized (lock) {
lock.wait(); // wait for K to be ready
}
Run Code Online (Sandbox Code Playgroud)
k然后通知o并等待它在这个块内打印:
synchronized (lock) {
lock.notify(); // tell O to print
lock.wait(); // wait for O to print
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何k进入同步块lock?不应该o拥有lock(因为它被称为wait())?在Java教程说:
只要一个线程拥有一个内部锁,没有其他线程可以获得相同的锁.另一个线程在尝试获取锁时将阻塞.
这是完整的程序:
public class OK implements Runnable {
private static final Object lock = new Object(); // monitor for wait/notify
private …Run Code Online (Sandbox Code Playgroud) 就在今天,我需要一种在不同对象之间传递函数的方法.我很快就知道你不能直接用Java做到这一点,但是你可以传递一个显然被称为"匿名内部类"的wht实例,如下所示:
要定义类:
interface MyCallback {
public int execute(int i1, int i2);
}
Run Code Online (Sandbox Code Playgroud)
要创建它的实例:
MyCallback callback = new MyCallback() {
public int execute(int i1, int i2) {
return i1 + i2;
}
};
Run Code Online (Sandbox Code Playgroud)
并称之为:
int sum = callback.execute(1, 2); // Sets sum to 3.
Run Code Online (Sandbox Code Playgroud)
很简单.但我不明白为什么它被称为"匿名".我不是只给它起名字MyCallback吗?一个被命名的东西不能匿名,对吗?请帮助我摆脱对这个术语的困惑.
Pharo初学者在这里 - 我有一些(丑陋?)代码适用于特定情况,但想知道是否有更好(更可读)的方式.我想得到一个没有.git的仓库的名称(如果它在那里).
修剪n个字符会很棒.我正在寻找一个通用的解决方案.
我找到了,trimRight:但这不是一些角色; 它是白色空间或特定字符.
(projectName endsWith: '.git')
ifTrue: [ projectName := projectName
copyFrom: 1 to: projectName size - '.git' size - 1 ]
Run Code Online (Sandbox Code Playgroud) 想要将我的小项目从Pharo 5迁移到Pharo 6.1,当我右键单击我的包及其类时,我很高兴地找到了File Out选项.我看到它为我的图像目录中的那些工件生成文本文件(我在Windows上运行).到现在为止还挺好.
但是,我到处寻找一个菜单,将这些文件导入Pharo 6.1(右键单击包列表等)无济于事.如何进行文件输入(与文件输出相反)?
GitHub今天给我发了一封电子邮件警告我package-lock.json文件中存在漏洞.不过,据我所知,是在生成该文件npm install的package.json.
我怎样才能找出哪个包(from package.json)链接到易受攻击的包(in package-lock.json)?
相关问题: