VS Code无法登录微软账号
现象在VS Code中,点击账户->登录以同步设置后,弹出的登陆界面提示404,右下角错误信息为:no_network_connectivity: No network connectivity. Check your internet connection.。如下图所示: 在mac/linux上这个功能是可用的。 解决方案其根本原因是Clash Verge在作祟,但也不能每次都关闭,还要查到具体的原因。后来通过多方搜索,找到了原因: 登录调用的是工作或学校账户的UWP应用,默认无法使用本地回环地址的代理 所以,需要借助Clash Verge自带的UWP 工具,在设置 -> Clash设置 -> UWP 工具。打开后,勾选列表中的工作或学校账户。 点击Save Changes后,再次尝试登录,就可以正常登录了。
Go语言学习笔记(六)- 并发编程
goroutinechannel(创建、发送、接收、关闭)select 语句sync 包:WaitGroup、Mutex、Oncecontext 包
Go语言学习笔记(五)- 接口与类型系统
接口在Go语言中,接口的设计是一个典型的“鸭子类型”(Duck Typing)。如果一个结构体拥有了某个接口定义的所有方法,那么它就实现了这个接口。 先看看Java的接口(显示实现接口) 123456789interface Animal{ void say();}class Dog implements Animal { public void say(){ System.out.println("wang!") }} 类必须通过implements关键字明确申明自己实现了某个接口。 再看看Go的接口 123456789type Animal interface { Say();}type Dog struct{}func (d Dog) Say(){ fmt.Println("wang!")} Go是隐式实现接口,只要一个类型实现了接口需求的所有方法,就自动认为他实现...
Go语言学习笔记(四)- 控制流与函数
今天简单的学习下流程控制与函数,这一块大多数语言都差不多。 if/elseGo语言的if不需要小括号,但代码块必须使用{}包裹。 12345678func TestIf(t *testing.T) { age := 30 if age >= 18 { t.Log("adult") } else { t.Log("teenager") }} 其次,if条件必须是bool,不支持将整数、字符串、指针等作为条件。 Go 不像 C / C++ / JavaScript,不能用 0、1、nil 等隐式转 bool。 1234567func TestIf1(t *testing.T) { n := 1 //非布尔值 'n' (类型 int) 用作条件 if n { t.Log("error") }} if支持初始化语句这是 Go 很常见的...
Go语言学习笔记(三)- 复合数据类型
本章知识点: 数组与切片 map(字典) struct(结构体) 指针 泛型 数组与切片在 Go 中,数组是固定长度的,而切片是动态的、是对数组的抽象。 数组不管在Java还是Go似乎都不太常用,比较常用List或者Go中的切片。其语法如下: 1234567891011121314151617181920212223242526272829package mainimport "testing"func Test_Array(t *testing.T) { // 数组时值类型,当一个数组被赋值给另一个数组时,实际上是创建了一个新的数组,并将原数组的值复制到新数组中。这意味着对新数组的修改不会影响原数组,反之亦然。 // 定义一个长度为5的int数组,其默认值为0 var arr1 [5]int t.Log(arr1) // 定义一个长度为3的字符串数组,默认值为"" var arr2 [3]string t.Log(arr2) // 初始化 //字面量初始化 arr3 := [3]string{"a...
Go语言学习笔记(二)- 基础语法与数据类型
作为Java程序员,本章内容就走马观花的了解一下即可,这一章内容和其他语言没有太大的不同。 本章学习的内容 包申明、导入、main方法 变量声明(var和:=的区别) 基本类型:int、float、string、bool 常量与iota 类型转换 main方法通过一个HelloWorld的程序,说明第一小节内容:包申明、导入包、main方法。创建一个main.go 1234567package mainimport "fmt"func main() { fmt.Print("Hello World")} 包申明: 1package main 在Go语言中,每一个源文件都必须以package开头,它的作用就是定义了该文件属于哪个命名空间。这个名称可以随意定义,但main这个名称很特殊: 如果该文件的package是main,那么这个程序将会被编译成一个可执行程序。 对于不同的文件,也可以将包名定义为main,但是main方法只能有一个。 例如在main.go的同一级目录,创建一个utils.go,并且也声明为...
Go语言学习笔记(一)
前言2017年,简单的学习了一下Go语言,但苦于当时的工作没有办法实践,而我又刚换了工作,每天都要加班到最后一班地铁,没多久,学习的内容就基本上忘光光了,今年得空,可以在学习下Go语言,手头上也有两个项目有时间去重构,那就重新学习一次吧。本次学习使用go 1.26版本。 Go语言介绍Go语言由Google开发,对于程序开发效率、并发、云原生等有非常好的支持。对于Java程序员来说,学习起来非常容易。 核心特性:天然并发(Goroutine)、强类型、编译速度极快、垃圾回收(GC)、静态链接成单个可执行二进制文件。 适用场景:云原生开发(Docker/K8s 均由 Go 编写)、微服务、系统工具、高性能网络服务。 GOROOT和GOPATH对于Go新手还是有必要明确下这两个环境变量的含义,不然很容易纯靠字面意思搞错。 GOROOT,就是Go SDK的安装路径,不是go语言的项目路径,对于Java程序员来说,就是JDK的路径。 GOPATH,工作区路径,类似于Eclipse+maven的组合,将workspace和.m2合并在一个目录。最开始用起来老别扭了,不过从Go ...
Rust学习笔记
从2024年简单的学习了下Rust后,就再也没怎么使用过,最近得闲,准备好好学习下rust。看了下之前记录的Rust笔记略显过时,倒不如从头再来,再学一遍! 安装Rust下载rustup和其他编程语言不同,安装Rust需要安装的是rustup,然后再利用rustup来安装Rust。这里就推荐使用官网的下载器来安装,我之前使用Scoop安装了rust,但是实际上它不过是个二进制的程序而已,并不满足rust开发。 打开官方文档安装 Rust - Rust 程序设计语言,在这里下载rustup-init.exe,下载后先不着急安装,配置项环境变量。 配置环境变量这一步需要配置四个变量,分别是rustup和cargo安装的路径,以及加速器地址。打开设置 -> 高级系统设置 -> 环境变量,在用户变量中设置如下四个环境变量 1234# 安装路径,cargo类似于pypi,rustup类似于rust安装器CARGO_HOME=D:\devtools\rust\cargoRUSTUP_HOME=D:\devtools\rust\rustup 配置字节加速器,不然慢的要死 ...
放弃nvm改换fnm
今天用Claude调试以前的前端项目时,我需要使用nodejs14,按照往常的习惯直接使用nvm install 14,并且切换过去即可。但这次出问题了,我是用nvm use 14,虽然显示切换成功了,但使用node -v依旧显示的时nodejs 24的版本。后续折腾一番环境变量,终于可以切换了,但安装nodejs 14的时候又出幺蛾子了(实测nodejs 18就没问题),npm死活装不上,虽然可以通过手动下载等方式将其配置好,但也略嫌麻烦,于是就萌生了更换工具的想法。 对于Nodejs的版本管理工具,还有另外一个使用Rust实现的fnm。具体请查看Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust。我目前使用scoop来管理这些开发软件,所以安装也是极其方便。(别忘了先卸载nvm) 1scoop install fnm 安装完成后,其命令几乎和nvm一样一样的。 12345678910111213141516171819# 安装nodefnm install 24fnm i...
使用wsl安装Linux系统
中午无聊,打算装两个Linux玩玩,我选择了Fedora42和Arch,这两个系统在WSL中式支持的,但默认安装在C盘,还得再导出导入一次才能换到其他盘,那何必多此一举,直接导入到其他盘即可。下面介绍下本次安装的过程。 系统包准备 Fedora42 ,Fedroa42 下载地址 ArchLinux,ArchLinux下载地址 打开Fedora下载地址,Fedora官方支持WSL的镜像,所以只需要下载Fedora-WSL-Base-42-1.1.x86_64.tar.xz即可。 打开ArchLinux下载地址,Arch官方没有WSL的镜像,我们下载archlinux-bootstrap-x86_64.tar.zst,然后在任意一个Linux中使用zstd命令将其转换为tar包。以Ubuntu为例 123sudo apt install zstd# 解压 zst 并打包为 tarzstd -d archlinux-bootstrap-x86_64.tar.zst ArchLinux默认会比其他发行版多一层目录root.x86_64,所以这个包还需要再处理下才行,不能直...




