小编cor*_*zza的帖子

Java方法可以有超过255个局部变量吗?

iload爪哇操作码用来推动从本地变量阵列(LVA)的值压入操作数栈.

此操作码将单个字节作为参数(en.wikipedia.org/wiki/Java_bytecode_instruction_listings),用作LVA的索引.

如果LVA的一个元素始终是对象的引用(我想这不是静态方法的情况,但是现在让我们忽略它们),并且如果只使用一个字节作为索引(256个可能的值),那么一个方法如何访问超过255个不同的局部变量?

java jvm bytecode opcode low-level

6
推荐指数
2
解决办法
584
查看次数

为什么我的git自动更新Expect脚本不起作用?

我想创建一个脚本来更新我的所有GitHub存储库.

我只需要输入我的用户名和密码,脚本将通过一个存储库列表,调用git push并通过补充的Expect脚本提供必要的信息.

这是我的bash脚本:

#! /bin/bash

echo "Updating GitHub projects from project_list.txt."
echo

read -p "GitHub username: " un
read -p "GitHub password: " -s pw

echo
echo

while read line
do
    eval dir=$line
    echo "Updating:" $dir"."
    cd $dir
    $SF/githubexpect $un $pw
    echo
    echo
done < $SF/project_list.txt
Run Code Online (Sandbox Code Playgroud)

$SF 是一个全局环境变量,包含我的脚本文件夹的绝对路径.

这是githubexpect脚本:

#! /usr/bin/expect

set un [lindex $argv 0]
set pw [lindex $argv 1]

spawn git push

expect "Username"
send $un\n

expect "Password"
send $pw\n
Run Code Online (Sandbox Code Playgroud)

当我运行bash脚本时,事情按预期进行.

  1. 我被提示输入信息.
  2. 脚本成功启动并继续读取project_list.txt文件. …

linux git bash github expect

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

当关键字在不同的上下文中意味着不同的东西时,这是一个上下文敏感的例子吗?

根据此答案 => Scala中是具有两种不同的含义关键字:1来表示一个功能类型:Double => Double2以创建lambda表达式:(x: Double): Double => 2*x.

这与正式语法有什么关系,即这会使Scala上下文敏感吗?

我知道大多数语言都没有上下文,但我不确定我所描述的情况是否与此有关.


编辑:

好像我不太了解上下文敏感的语法.我知道生产规则应该是什么样子,以及它们的含义("只有当A被这些符号包围时才适用这种生产"),但我不确定它们与实际(编程)语言的关系.

我认为我的困惑源于阅读"乔姆斯基引入这个术语,因为一个词的含义可能取决于它的语境",并且我=>在引用中与术语"单词"相关联,并且它的两个用法是两个独立的上下文.

如果一个答案可以解决我的困惑,那就太好了.

scala formal-languages context-sensitive-grammar

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

为什么JSON无法保存对象的功能?

在我的游戏中,我通过将所有对象转换为JSON然后将其保存到文件来保存当前状态.有些对象,比如敌人,对它们有功能,但JSON无法保存功能!有替代方案还是解决方案?

javascript json node.js

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

如何使用 Node.js 创建网络爬虫?

我最近对搜索引擎的工作方式感兴趣,我发现他们使用“机器人”或“网络爬虫”。我立即开始想知道这些东西是如何工作的,我想创造一个!那么,首先:您如何制作一个从服务器请求页面的程序?如果你给我一个简单的 JavaScript 示例(我使用 Node 作为普通脚本语言运行它),那就太棒了。接下来,有没有让我解释 HTML 的 Node 模块?为我创建一个 DOM 以便我可以循环浏览所有链接等等?如果我错了,请纠正我,但我想它是这样完成的...也热烈欢迎 C++、C 或 Python 中的任何示例,尽管我更喜欢 JS 或 Python,因为我更熟悉高级脚本语言。

javascript web-crawler node.js

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

如何将我的Python代码组织成多个类?

我最近被告知我应该将我的代码保存在单独的文件中; 像main.py,engine.py,settings.py等等.虽然这确实有好处,比如更容易管理,可扩展性等,但对我来说似乎有太多的缺点......

例如,如果我有一个调用的脚本settings.py,其中定义了屏幕对象的大小,模拟的速度和各种对象的颜色,如果在我的engine.py脚本和main.py脚本中都需要这些变量,我该怎么办?我在两个脚本中都导入了两次吗?看起来相当混乱.如果engine.py脚本中的某些类需要代码,该main.py怎么办?

让我告诉你具体情况......

我的main.py脚本本身导入Pygame,初始化它,依此类推.它曾经有一个表示屏幕对象的类,该类有一个方法draw,它只是调用Pygame绘制函数.现在,当我把类放在我的engine.py脚本中时,事情就不再起作用了,因为Pygame在那里不存在!我最后导入了两个settings.py和Pygame engine.py,然后导入引擎main.py,但是它更像是初始化器而不是引擎......有没有办法处理像这样的东西,比如一般的引导线?

python design-patterns class

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

全屏捕捉键盘输入似乎无法正常工作

我正在用Three.js制作游戏,我需要获得用户输入.我有两个处理函数;

function press(evt) 
{
    console.log(evt);

    //evt = window.event;
    var code = evt.which || evt.keyCode;

    switch(code) 
    {
        case KEY.W: input.up = true; break;
        case KEY.A: input.left = true; break;
        case KEY.S: input.down = true; break;
        case KEY.D: input.right = true; break;
        case KEY.E: input.e = true; break;
        case KEY.Z: input.z = true; break;
        case KEY.ONE: input.one = true; break;
        case KEY.CTRL: input.ctrl = true; break;
        case KEY.P: input.plus = true; break;
        case KEY.M: input.minus = true; break;
        case KEY.SH: input.shift = …
Run Code Online (Sandbox Code Playgroud)

javascript keyboard fullscreen three.js

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

调用更新方法与具有setInterval

在我的游戏引擎中,有些对象需要定期更新.例如,场景可以降低其alpha值,因此我设置了一个间隔来执行它.此外,相机有时需要稍微摇晃,这需要对旋转属性进行插值.

我看到有两种方法可以解决这些问题:

  1. 有一个update()方法调用所有其他对象的更新方法.对象跟踪自上次更新以来的时间并采取相应措施.

  2. setInterval为每个对象的更新方法执行a .

什么是最好的解决方案,为什么?

javascript design-patterns

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

使一个类可用于其他程序

我正在用C++构建一个演化模拟器,但不是一个"真正的"可运行程序,而是一个其他程序应该的类#include.这个类,叫World,有一些功能,如update(),getInfo()等...

我在这里遇到两个问题.首先,我不知道我应该如何编译该类,以及我应该为哪些文件提供用户程序(#include该类的用户程序).显然,程序应该接收.hpp文件,但还有什么?该类的目标文件World?这意味着我需要用g++ World.o user.o -o user语法编译用户程序,但有没有办法避免这样做(World.o在我的编译命令中提到)?我不需要iostream.o在编译命令中包含相同的方法.

第二个问题是World该类#include是一些其他类,例如Organism,它们必须包含Block该类才能从中继承.如何编译此代码以获取单个World.o文件(如果这是问题1的答案)?

c++ gcc compilation class include

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

Java包和类

我正在用Java构建一个非常简单的库,它将打包在一个Jar中.它应该只暴露一个类:世界.World类使用Block类的子类,它位于同一个package(com.yannbane.a)中,并且本身不提供很多功能,但需要进行扩展.我计划创建另一个包,com.yannbane.a.blocks它将包含所有块类型(子类).

因此,目录/包结构应如下所示:

com/
    yannbane/
        a/
            World.java
            Block.java

            blocks/
                Brick.java
                Stone.java
Run Code Online (Sandbox Code Playgroud)

但是,为了使Block的子类实际扩展Block类,我需要创建Block类public.这破坏了我的目标,即让Jar文件只暴露一个类World.我还需要将子类公开,以便World可以使用它们.

我如何保留这个包和目录结构,但仍然让我的Jar只公开World类,而不是其他类?

java encapsulation jar

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