小编Saj*_*uuk的帖子

如何在u32和usize之间进行惯用转换?

例如,此代码工作并打印"b":

fn main() {
    let s = "abc";
    let ch = s.chars().nth(1).unwrap();
    println!("{}", ch);
}
Run Code Online (Sandbox Code Playgroud)

另一方面,此代码导致不匹配类型错误.

fn main() {
    let s = "abc";
    let n: u32 = 1;
    let ch = s.chars().nth(n).unwrap();
    println!("{}", ch);
}
Run Code Online (Sandbox Code Playgroud)
error[E0308]: mismatched types
 --> src/main.rs:5:28
  |
5 |     let ch = s.chars().nth(n).unwrap();
  |                            ^ expected usize, found u32
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我必须使用u32变量类型n.我怎么能转换u32usize并在使用它nth()

types type-conversion rust

14
推荐指数
2
解决办法
9992
查看次数

如何将自纪元以来的Unix时间/时间转换为标准日期和时间?

我正在使用计时箱; 经过一些挖掘后,我发现该DateTime类型具有timestamp()可以生成类型的纪元时间的函数i64.但是,我无法找到如何将其转换回来DateTime.

extern crate chrono;
use chrono::*;

fn main() {
    let date = chrono::UTC.ymd(2020, 1, 1).and_hms(0, 0, 0);
    println!("{}", start_date.timestamp());
    // ...how to convert it back?
}
Run Code Online (Sandbox Code Playgroud)

time rust rust-chrono

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

为什么在这里使用"&&"?

在这里有两个问题.

let a = [1, 2, 3];

assert_eq!(a.iter().find(|&&x| x == 2), Some(&2));
assert_eq!(a.iter().find(|&&x| x == 5), None);
Run Code Online (Sandbox Code Playgroud)

1.为什么&&x在闭包参数中使用而不仅仅是x?(我理解"&"正在传递一个对象的引用,但是两次使用它的意思是什么?)

这本书写道:

因为find()接受引用,并且许多迭代器遍历引用,这导致可能令人困惑的情况,其中参数是双引用.您可以在下面的示例中看到此效果,使用&& x.

但我真的不明白.

2.为什么&用而不是find()

reference rust borrowing

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

VS Code 语法突出显示支持的最大文件大小是多少?

VS Code 为开箱即用的 xml 和 json 文件自动提供语法突出显示。但是,当您开始处理大于特定大小的文件时,语法突出显示不再起作用。

许多其他功能也可能被禁用。

例如,

  • 打开小于10MB的json/xml文件,一切正常。
  • 打开大于 40MB 的 json/xml 文件,语法高亮不起作用。

造成这种情况的根本原因是什么?这些功能发挥作用的文件大小的确切限制是多少?

visual-studio-code

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

VS Code是否具有Apache Groovy的语言扩展?

在扩展商店中搜索没有结果,但我在他们的主分支回购中找到了一些东西:

https://github.com/Microsoft/vscode/tree/master/extensions/groovy

但不太确定这是否是我想要的扩展名,如果是,我是否只将其解压缩到我的.vscode/extensions/文件夹中?

java groovy text-editor visual-studio-code

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

你如何在VS Code中隐藏任意代码段?

通过"VS Code"我的意思是轻量级文本编辑器而不是单片IDE,不幸的是在google上搜索它会带来很多关于如何在Visual Studio中执行此操作的无关信息.

对于问题本身,任何人都知道如何在"Visual Studio代码"中隐藏任意选定的代码行,最好是像折叠那样加号?

注意:这与折叠嵌套代码不同,这可能是通过实现Ctrl+K,Ctrl+<num>,我需要的是隐藏特定的代码块,无论嵌套与否.

编辑:我看到有些人不理解我的要求.

例如,你可能认为我想要的是这个:

隐藏之前:

for i in j:
    for k in i:
        for l in k:
            somestuff...
Run Code Online (Sandbox Code Playgroud)

隐藏后:

[+] for i in j: ...
Run Code Online (Sandbox Code Playgroud)

我真正想要的是这个:

隐藏之前:

# doing stuff about a
a = ClassA()
a.bar()
a.i = 2
a.j = 3
a.k = 5
Run Code Online (Sandbox Code Playgroud)

隐藏后:

[+] ...  ( doing stuff about a )
Run Code Online (Sandbox Code Playgroud)

2017.10.17编辑:结果显示VS Code在VS Code 1.17.1更新中实现了一个非常类似的称为"折叠区域"的功能.链接

text-editor visual-studio-code

7
推荐指数
3
解决办法
7225
查看次数

我可以通过 virtualenv/virtualenvwrapper 使用其他 python 实现吗?

经过一段时间的搜索(也许这还不够,但我不认为我在这方面取得了进展),我无法找到有关 virtualenv/virtualenvwrapper 中其他 Python 实现的兼容性的信息。我所说的“其他实现”是指 PyPy、IronPython、Cython、Jython...

例如,我可以使用以下代码为不同的 python 版本创建 virtualenv 。

mkvirtualenv -p /usr/bin/python2.6 new_venv

但是当我尝试通过以下方式为 PyPy 创建 virtualenv 时:

mkvirtualenv -p /usr/bin/pypy new_venv

系统抛出一些错误。

编辑:我正在使用 virtualenvwrapper-win。它抛出

Running virtualenv with interpreter C:\pypy2-v5.8.0-win32\pypy.exe
New pypy executable in C:\Users\fangming.zfm\Envs\test-123\bin\pypy.exe
Installing setuptools, pip, wheel...done.
system cannot find the path specified.
system cannot find the path specified.
system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

为什么我们不能这样做?是因为缺乏兴趣,还是技术上不可行?

python pypy virtualenv virtualenvwrapper python-2.7

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

为什么不支持按文件名导入?

我想导入 python 目录中的所有 python 模块,并遇到了以下代码片段:

for name in os.listdir("modules"):
    if name.endswith(".py"):
        module = name[:-3]   # remove extension name for convenience.
        globals()[module] = __import__(os.path.join("modules", name))
Run Code Online (Sandbox Code Playgroud)

程序输出:

ImportError: Import by filename is not supported.

如何按文件名导入文件?

python import python-import

5
推荐指数
0
解决办法
9859
查看次数

如何在Python中不实例化对象的情况下打印类属性?

根据这篇文章,我可以通过访问枚举实例变量str(self.__dict__),但我不知道如何使用类变量来做到这一点。

这是我想避免的

# I would like to print out class attributes by overriding `__str__` for that class.
class circle(object):
    radius = 3
    def __str__(self):     # I want to avoid instantiation like this.
        return str(circle.radius)

print(circle())    # I want to avoid instantiation. why can't I just print(circle)?
Run Code Online (Sandbox Code Playgroud)

python oop class

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

如何使用Python随机丢弃集合中的多个元素?

例如,我有这个Set对象:

a = {0,1,2,3,4,5}

如何从这个集合中随机删除固定数量的元素?

python set data-structures

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