例如,此代码工作并打印"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.我怎么能转换u32到usize并在使用它nth()?
我正在使用计时箱; 经过一些挖掘后,我发现该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) 我在这里有两个问题.
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()?
VS Code 为开箱即用的 xml 和 json 文件自动提供语法突出显示。但是,当您开始处理大于特定大小的文件时,语法突出显示不再起作用。
许多其他功能也可能被禁用。
例如,
造成这种情况的根本原因是什么?这些功能发挥作用的文件大小的确切限制是多少?
在扩展商店中搜索没有结果,但我在他们的主分支回购中找到了一些东西:
https://github.com/Microsoft/vscode/tree/master/extensions/groovy
但不太确定这是否是我想要的扩展名,如果是,我是否只将其解压缩到我的.vscode/extensions/文件夹中?
通过"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更新中实现了一个非常类似的称为"折叠区域"的功能.链接
经过一段时间的搜索(也许这还不够,但我不认为我在这方面取得了进展),我无法找到有关 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 目录中的所有 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.
如何按文件名导入文件?
根据这篇文章,我可以通过访问枚举实例变量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) 例如,我有这个Set对象:
a = {0,1,2,3,4,5}
如何从这个集合中随机删除固定数量的元素?
python ×4
rust ×3
text-editor ×2
borrowing ×1
class ×1
groovy ×1
import ×1
java ×1
oop ×1
pypy ×1
python-2.7 ×1
reference ×1
rust-chrono ×1
set ×1
time ×1
types ×1
virtualenv ×1