小编tve*_*eeg的帖子

PHP:在静态变量中引用另一个静态变量

中是不可能的(这实际上是任何编程语言的基本功能......):所以这是我的问题的示例:

class Test {
 private static $A = "test";
 private static $B = "This is a " . Test::$A . " to see if it works";
}
Run Code Online (Sandbox Code Playgroud)

我的预期结果是变量$B的值 =This is a test to see if it works

但不知何故我收到了这个错误:

解析错误:语法错误,意外的“$A”(T_VARIABLE),第 4 行 /.../class.Test.php 中期望标识符(T_STRING)或类(T_CLASS)

这是无法做到的事情还是只是一些愚蠢的拼写错误?我无法找到错误,因为大约一个小时了......

提前致谢

php static reference

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

如何检查目录是否存在并创建一个新目录,如果它不在Rust中?

我尝试了以下但我不认为它特别漂亮:

let path = "target/dir";
if !std::path::Path::new(&path).exists() {
    std::fs::create_dir(path)?;
}
Run Code Online (Sandbox Code Playgroud)

directory rust

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

如何在不复制向量的情况下将Vec <T>转换为Vec <U>?

我想将a转换Vec<T>Vec<U>where T某种原语,并且U是一种新类型T:struct U(T).

我试过这样的事情:

struct Foo(u32);

fn do_something_using_foo(buffer: &mut Vec<Foo>) {}

fn main() {
    let buffer: Vec<u32> = vec![0; 100];

    do_something_using_foo(&mut buffer as Vec<Foo>);
}
Run Code Online (Sandbox Code Playgroud)

我不想复制矢量,我想u32在newtype中包装字段Foo.

这给出了错误:

error[E0308]: mismatched types
 --> main.rs:8:28
  |
8 |     do_something_using_foo(&mut buffer as Vec<Foo>);
  |                            ^^^^^^^^^^^^^^^^^^^^^^^ expected mutable reference, found struct `std::vec::Vec`
  |
  = note: expected type `&mut std::vec::Vec<Foo>`
         found type `std::vec::Vec<Foo>`
  = help: try with `&mut &mut buffer as …
Run Code Online (Sandbox Code Playgroud)

rust

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

确定文件是否为目录,在 zip 存档内

我根据规范读取 zip 文件,并从中央目录获取每个文件的信息。从我读到的标题:

#define VERSION_NEEDED_OFSSET 6

UINT16 versionNeeded = (UINT16)*(zipFile + VERSION_NEEDED_OFSSET);
Run Code Online (Sandbox Code Playgroud)

所以我压缩了一些文件,还有一些目录,当我得到关于目录的信息时,我得到了 versionNeeded = 0x000a

从我阅读的文档中:

提取文件所需的最低支持 ZIP 规范版本,映射如上。该值基于 ZIP 程序必须支持的特定格式功能才能提取文件。如果多个功能应用于一个文件,则必须将最低版本设置为具有最高值的功能。将使用比上次发布的值更高的版本号来实现影响已发布格式规范的新功能或功能更改,以避免冲突。

4.4.3.2 当前最低功能版本定义如下:

1.0 - 默认值

1.1 - 文件是卷标

2.0 - 文件是一个文件夹(目录)

但是用于确定文件类型的 zip 标头部分是什么?我看不到文档中负责文件类型的任何类型或位。

c zip header

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

如何在不清理整个项目的情况下强制`build.rs`再次运行?

如何build.rs在不清理整个项目的情况下强行再次运行?我查了cargo build --help但是找不到任何相关内容build.rs.

rust rust-cargo

5
推荐指数
4
解决办法
1448
查看次数

处理 vimrc 时检测到错误:- 如何在 vim 中获取 pugins

今天我正在制作自定义 vimrc,但它给了我这个错误。它不允许我使用任何插件。有人可以帮助告诉我做错了什么吗?这些行是它显示的错误:

E117: Unknown function: plug#begin
line   10:
E492: Not an editor command: Plug 'rbgrouleff/bclose.vim'
line   11:
E492: Not an editor command: Plug 'dbakker/vim-projectroot'
line   12:
E492: Not an editor command: Plug 'scrooloose/nerdtree'
line   13:
E492: Not an editor command: Plug 'junegunn/fzf'
line   14:
E492: Not an editor command: Plug 'junegunn/fzf.vim'
line   15:
E492: Not an editor command: Plug 'majutsushi/tagbar'
line   18:
E492: Not an editor command: Plug 'vim-airline/vim-airline'
line   19:
E492: Not an editor command: Plug 'vim-airline/vim-airline-themes'
line   20: …
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

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

在Rust中使用"find"对项目进行可变引用

如何获得向量中找到的项目的可变引用?

我已经尝试了下面的工作,如果我不使用迭代器可变.iter():

fn main() {
    let mut vec = vec![1, 2, 3, 4];
    let mut wrong = -1;

    let working = match vec.iter().find(|&c| *c == 2) {
        Some(c) => c,
        None => &wrong
    };

    println!("Result: {}", working);
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用可变迭代器获取可变引用时.iter_mut(),

fn main() {
    let mut vec = vec![1, 2, 3, 4];
    let mut wrong = -1;

    let mut error = match vec.iter_mut().find(|&c| *c == 2) {
        Some(c) => c,
        None => &mut wrong
    };

    println!("Result: {}", error); …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何在Rust中有条件地编译WebAssembly?

如何在有条件地选择wasm32-unknown-unkown目标的地方制作配置标志?

我使用以下方法打印当前环境build.rs:

use std::env;

fn main() {
    for (key, value) in env::vars() {
        if key.starts_with("CARGO_CFG_") {
            println!("{}: {:?}", key, value);
        }
    }
    panic!("stop and dump stdout");
}
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

CARGO_CFG_DEBUG_ASSERTIONS: ""
CARGO_CFG_TARGET_ARCH: "wasm32"
CARGO_CFG_TARGET_ENDIAN: "little"
CARGO_CFG_TARGET_ENV: ""
CARGO_CFG_TARGET_HAS_ATOMIC: "16,32,8,ptr"
CARGO_CFG_TARGET_OS: "unknown"
CARGO_CFG_TARGET_POINTER_WIDTH: "32"
CARGO_CFG_TARGET_VENDOR: "unknown"
Run Code Online (Sandbox Code Playgroud)

通常我会这样做,#[cfg(target_os = "linux")]但在这种情况下#[cfg(target_os = "unknown")]可能不起作用,因为可能比匹配更多wasm32-unknown-unknown.我是否必须使用组合target_archtarget_os为此工作正常或可能只是target_arch

rust rust-cargo

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

加载DLL库

是否可以使用C加载DLL并使用其功能?

我是C的新手,我正试图在互联网上搜索一些好的参考资料; 但我找不到任何东西.

任何帮助,将不胜感激!

我在Windows 7,64位的Code :: Blocks中使用GNU GCC.

c dll winapi gcc codeblocks

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

fork和exec之后在父级和子级之间共享文件描述符

我在Linux,A和B上有两个进程.我想从进程A与进程B共享文件描述符,现在我只是将它序列化为a char*并将其传递给execl参数,但这不起作用.

Ac看起来像这样:

union descriptor{
    char c[sizeof(int)];
    int i;
} fd;
pid_t pid;

fd.i = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// Perform other socket functions

pid = fork();
if(pid == 0){
    // Read data from socket
    if(execl("./B", fd.c, NULL) < 0){
        exit(EXIT_FAILURE);
    }else(
        exit(EXIT_SUCCESS);
    }
}else if(pid < 0){
    exit(EXIT_FAILURE);
}else{
    waitpid(pid, NULL, 0);
}
Run Code Online (Sandbox Code Playgroud)

Bc看起来像这样:

union descriptor{
    char c[sizeof(int)];
    int i;
} fd;

memcpy(&fd.c[0], argv[0], sizeof(int));

write(fd.i, "TEST", 4);
close(fd.i);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我不明白为什么不.我怎样才能做到这一点?如果它的工作原理,它是经过共享父母和孩子之间的文件描述符的最佳解决方案fork和一个exec

更新

问题与我提出的问题无关,它是由@OliCharlesworth指出的传递整数的错误方式引起的.请关闭这个问题.

c linux fork file-descriptor exec

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

用git中的孤立分支覆盖master分支

我已经创建了一个新的孤儿分支,git checkout --orphan orphan-branch并在该分支上做了很多提交.

现在我想master用新创建的分支替换分支orphan-branch,所有文件和master分支的历史应该由文件和orphan分支的历史记录替换.做这个的最好方式是什么?

git branch git-branch

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

查看 Rust 宏输出

如何查看扩展 Rust 宏的代码输出?

例如我有这个片段:

macro_rules! five_times {
    ($x:expr) => (5 * $x);
}

fn main() {
    let a = five_times!(2 + 3);
}
Run Code Online (Sandbox Code Playgroud)

我想看到这样的事情:

fn main() {
    let a = 5 * (2 + 3);
}
Run Code Online (Sandbox Code Playgroud)

macros rust

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