防雷和防浪涌区别,go 闭包,匿名函数,寄存器,Apifox添加断言,go单元测试,NPU,finalshell远程SSH'连接Ubuntu Connection refused已解决
防雷和防浪涌区别
https://www.eefocus.com/e/510541
浪涌保护器,也叫防雷器,是一种为各种电子设备、仪器仪表、通讯线路提供安全防护的电子装置,当电气回路或者通讯线路中因为外界的干扰,突然产生尖峰电流或者电压时,浪涌保护器能在极短的时间内导通分流,从而避免浪涌对回路中其他设备的损害。
浪涌保护器适用于交流50/60HZ,额定电压220V/380V的供电系统中,对间接雷电和直接雷电影响或其他瞬时过压的电涌进行保护,适用于家庭住址、第三产业以及工业领域电涌保护的要求。
浪涌防雷保护器,最原始的浪涌防雷保护器羊角形间隙,出现于10世纪末期,用于架空输电线路,防止雷电随坏设备绝缘而造成停电。
雷电 我们可以看做是一种强大的能量,如果说吸收雷电的能量现在的电子产品是达不到的,但是雷电的能量却可以引导他释放到大地,大地去“吸收”他强大的能量,从而保护到人和物。
防雷:将瞬间大电流引入大地释放掉,以保证用电设备的安全;
防浪涌:当电气回路或者通讯线路中因为外界的干扰,突然产生尖峰电流或者电压时,浪涌保护器能在极短的时间内导通分流,从而避免浪涌对回路中其他设备的损害。
闭包,匿名函数
https://blog.csdn.net/qq_35976351/article/details/81986496
https://www.bilibili.com/video/BV1ma4y1e7R5?spm_id_from=333.999.0.0
func main() {
lambda()
// closure1()
// c := closure2()
// fmt.Println("c()", c())
// fmt.Println("c", c)
}
// 匿名函数
var f = func(int) {}
func lambda() {
f = func(x int) {
fmt.Println("x", x)
}
f(2)
f=func(i int) {
fmt.Println("i*i*i",i*i*i)
}
f(3)
}
// 闭包
func closure1() {
n := 0
f := func() int {
n += 1
return n
}
fmt.Println("f", f) // 别忘记括号,不加括号相当于地址
fmt.Println("f()", f())
}
// 闭包作为函数返回值
func closure2() func() int {
n := 0
return func() int {
n++
return n
}
}
寄存器
寄存器:是有限存贮容量的高速存贮部件,是中央处理器的组成部分,它们可用来暂存指令、数据和地址,在计算机领域,寄存器是cpu内部的元件,包括通用寄存器、专业寄存器和控制寄存器,拥有非常高的读写速度,在寄存器之间的数据传送非常快,是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,它可以用来读写数据到电脑的周边设备,寄存器内的数据可用于执行算术及逻辑运算,存于寄存器的地址,可用来指向内存的某个位置。
Apifox添加断言
https://www.apifox.cn/help/app/processor/assertion/#%E7%A4%BA%E4%BE%8B
https://www.apifox.cn/help/reference/json-path/#%E6%A6%82%E8%A7%88
注意【提取表达式的大小写】
测试效果
go单元测试
https://mp.weixin.qq.com/s/hqsBWrky2PtHxRPbzvWsNA
方式1:
package main
//拼接两个字符串
func JointString(a string, b string) string {
return a + b
}
package main
import (
"fmt"
"testing"
)
//入门
func TestJointString(t *testing.T) {
fmt.Println(JointString("a", "b"))
}
//初级
func TestJointString1(t *testing.T) {
if JointString("a", "b") != "ab" {
t.Error("与我们预判的结果不一致")
}
// 故意写一个错误的预判
if JointString("g", "b") != "gob" {
t.Error("与我们预判的结果不一致")
}
}
//进阶
func TestJointString2(t *testing.T) {
type args struct {
a string
b string
}
tests := []struct {
name string
args args
want string
}{
// 这里编写我们的预判逻辑
{"testA", args{"d", "v"}, "dv"},
{"testB", args{"c", "d"}, "cd"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := JointString(tt.args.a, tt.args.b); got != tt.want {
t.Errorf("JointString() = %v, want %v", got, tt.want)
}
})
}
}
你也可以在命令行里面运行,cd 到我们的 utils 目录下面,执行 go test 即可:
Running tool: /usr/local/go/bin/go test -timeout 30s -run ^TestJointString$ neuron/function/ptz/astr
=== RUN TestJointString
ab
--- PASS: TestJointString (0.00s)
PASS
ok neuron/function/ptz/astr 0.017s
> 测试运行完成时间: 2022/2/16下午1:50:16 <
-v 是让控制台输出测试详细的流程。
方式2:
package main
import "fmt"
func firmwarePackAccept(serveIp, fileName string, tcpPort uint64) string {
// 建立TCP监听
ipandPort := fmt.Sprintf("%s:%d", serveIp, tcpPort)
return ipandPort
}
package main
import "testing"
func Test_firmwarePackAccept(t *testing.T) {
type args struct {
serveIp string
fileName string
tcpPort uint64
}
a:=args{
serveIp: "192.1.1.122",
fileName: "a.zip",
tcpPort: 66,
}
tests := []struct {
name string
args args
want string
}{
// TODO: Add test cases.
{"a",a,"192.1.1.122:66"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := firmwarePackAccept(tt.args.serveIp, tt.args.fileName, tt.args.tcpPort); got != tt.want {
t.Errorf("firmwarePackAccept() = %v, want %v", got, tt.want)
}
})
}
}
写好方法以后,vscode右键Go: Generate Unit Tests For Function
{"test", fields{start: true}, args{id: 0}},
NPU
嵌入式神经网络处理器(NPU)采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
通俗跑人工智能算法深度学习的算法。
手机拍照时的美颜、腿部拉长、对聚焦聚焦功能,就用的NPU,为了提高运算速度NPU有时候是单独出来,OPPO手机 马里亚纳X芯片。
finalshell远程SSH'连接Ubuntu Connection refused已解决
sudo apt-get install openssh-client
sudo apt-get install openssh-server