IDE 是 Visual Studio Code。这是我打开调试器时的日志:
# _/Users/leon/Documents/Projects/GoLang/TutorialLearningGoForWebDevelopment
/usr/local/go/pkg/tool/darwin_amd64/link: /usr/local/go/pkg/tool/darwin_amd64/link: combining dwarf failed: Unknown load command 0x32 (50)
exit status 2
Process exiting with code: 1
Run Code Online (Sandbox Code Playgroud)
去版本:
go version go1.10.3 darwin/amd64
Run Code Online (Sandbox Code Playgroud)
macOS 版本:
Mojave Version 10.14 Beta (18A353d)
Run Code Online (Sandbox Code Playgroud)
钻研版本:
Delve Debugger
Version: 1.0.0
Build: $Id: c98a142125d0b17bb11ec0513bde346229b5f533 $
Run Code Online (Sandbox Code Playgroud)
Visual Studio 代码版本:
Version 1.26.0-insider (1.26.0-insider)
Run Code Online (Sandbox Code Playgroud)
在launch.json几乎是自动生成的,具有端口变化只:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0", …Run Code Online (Sandbox Code Playgroud) 它在调试模式和 ProGuard 关闭的发布模式下工作正常,但在 ProGuard 打开时则不行,即使是空的。
这是堆栈跟踪:
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at h9.d0.f(Unknown Source:46)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at h9.y1.b(Unknown Source:39)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at h9.x1.c(Unknown Source:202)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at h9.v1.invoke(Unknown Source:160)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at $Proxy1.signUp(Unknown Source)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at k4.d.l(Unknown Source:35)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at k4.d.p(Unknown Source:8)
2021-09-07 23:42:19.556 32130-32130/com.myapp.packagename W/System.err: at k4.d.s(Unknown Source:4)
2021-09-07 …Run Code Online (Sandbox Code Playgroud) mut鉴于向量在初始化后将不可变,在没有关键字的情况下初始化向量的好方法是什么?
例如:
// nums is a `i32` vector(Vec<i32>)
// here is to pad two 1s with both ends
let mut padded: Vec<i32> = vec![0; len_p];
padded[0] = 1;
padded[len_n + 1] = 1;
for (idx, &num) in nums.iter().enumerate(){
padded[idx + 1] = num;
}
// `padded` will be read-only/immutable ever since
Run Code Online (Sandbox Code Playgroud)
否则,标记padded mut,简单地初始化它,在我看来是对不变性的浪费,因为我无法在初始化后强制执行它。