go语言学习之有关变量的知识
文章目录
- 变量的学习
- 1.变量的使用步骤
- 2.变量的注意事项
- 3.变量使用的三种方式:
- 4.程序中 + 号的使用
- 5.变量的数据类型
- 1)int数据类型
- 2)小数类型浮点型
- 3)**字符类型**
- 4)**字符串(String)类型**
- 5)**基本数据类型默认值**
- 6)**Golang基本数据类型的转换**
- 6.基本数据类型和string的转换
- 1)基本介绍
- 2)函数的介绍
- 7.String类型转基本数据类型
- 1)使用
- 2)注意事项
变量的学习
变量是程序的基本组成单位
概念:
变量相当于内存一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量(值)
1.变量的使用步骤
1)声明变量(也叫定义变量)
2)给变量赋值
3)使用变量
package mainimport "fmt"
func main(){//定义变量/声明变量var i int//给i赋值i = 9//使用变量fmt.Println("i=",i)
}
2.变量的注意事项
1)变量表示内存中的一个存储区域
2)该区域有自己的名称(变量名)和类型(数据类型)
示意图:
3.变量使用的三种方式:
1)第一种:指定变量类型,声明后若不赋值,使用默认值
2)第二种,根据值自行判断变量的类型(类型推导)
3)第三种:省略var,注意:=左侧的变量不应该是已经声明的,否则会导致编译报错
package mainimport "fmt"
func main(){//1.golang的变量使用方式1//第一种,指定变量类型,声明后不赋值的话,使用默认值//int 的默认值为0var i intfmt.Println("i=",i)//结果为0//第二种,根据值自行判断变量的类型(类型推导)var num = 10.11fmt.Println("num=",num)//第三种:省略var,注意:=左侧的变量不应该是已经声明的,否则会导致编译报错//下面的方式等价于var name string name = "tom"name :="tom"//这个地方的:不能省略fmt.Println("name=",name)//4)多变量声明//在编程过程中,有时我们需要一次声明多个变量,golang也提供这样的语法}
4)多变量声明
在编程过程中,有时我们需要一次声明多个变量,golang也提供这样的语法
package mainimport "fmt"
func main(){//该案例演示golang如何一次性声明多个变量// var n1, n2, n3 int// fmt.Println("n1=",n1,"n2=",n2,"n3=",n3)//一次性声明多个变量方式二n1,name, n3 := 100, "tom_",888fmt.Println("n1=",n1,"name=",name,"n3=",n3)//同样使用类型推导
}
如何一次性声明多个全局变量[在go中函数的外部定义变量就是全局变量]
5)该区域的数据值可以在同一类型范围内不断变化
package mainimport "fmt"//变量使用的注意事项
func main(){//该区域的数据值可以在同一类型范围内不断变化var i int =10i = 30i = 50fmt.Println("i=",i)//i = 1.23 //汇报错,因为不是int,不能改变数据类型
}
6)变量在同一个作用域(一个函数或者一个代码块中)内不能重名
package mainimport "fmt"//变量使用的注意事项
func main(){//该区域的数据值可以在同一类型范围内不断变化var i int =10i = 30i = 50fmt.Println("i=",i)//i = 1.23 //汇报错,因为不是int,不能改变数据类型//变量在同一个作用域(在一个函数或者在代码块中)内不能重名//var i int = 50//i := 99 //也会报错。这样写就包含了定义变量
}
7)变量=变量名 + 值 +数据类型,这一点大家要注意,变量的三要素
8)goglang的变量如果没有赋初值,编译器会使用默认值,比如int会默认值是0,string的默认值是空串
4.程序中 + 号的使用
1)当左右两边都是数值类型的时候,则做加法运算
2)当左右两边都是字符串,则做字符串拼接
package mainimport "fmt"//展示Golang的使用
func main(){var i =1var j =2var r = i+j //做加法运算fmt.Println("r=",r) //result is 5var str1 = "hello"var str2 = "world"var res = str1 + str2fmt.Println("res=",res) //result is helloworld}
5.变量的数据类型
1)int数据类型
package mainimport "fmt"//展示Golang整数类型的使用
func main(){var i int =1fmt.Println("i=",i)//测试一下int的范围var j int8 = -129 //会报错 因为其范围是-128 ~ 128fmt.Println("j=",j)}
无符号int整型介绍:
//测试一下var k uint8 = -1 //会报错fmt.Println("k=",k)
整型的类型
//int,uint,rune, byte的使用var a int =8900fmt.Println("a=",a)var b uint = 1var c byte = 3 //范围是0~255fmt.Println("b=",b,"c=",c)
整型的使用细节
1)Golang各个整数类型分为:有符号和无符号 int uint的大小和系统有关系
2)Golang的整型默认为int型
3)如何在程序中查看某个变量的字节大小和数据类型
package main// import "fmt"
// import "unsafe"
import ("fmt""unsafe"
)//展示Golang整数类型的使用
func main(){// var i int =1// fmt.Println("i=",i)//测试一下int的范围//var j int8 = -129 //会报错//fmt.Println("j=",j)//测试一下var k uint8 = 255fmt.Println("k=",k)//int,uint,rune, byte的使用var a int =8900fmt.Println("a=",a)var b uint = 1var c byte = 3 //范围是0~255fmt.Println("b=",b,"c=",c)//整型的使用细节var n1 = 100 //n1是什么类型//这里我们给介绍一下如何查看某个变量的数据类型//fmt.Printf() 可以用于做格式化的输出fmt.Printf("n1 的类型 %T ",n1)//如何查看某个变量的占用字节大小和数据类型 (使用较多)var n2 int64 = 10//unsafe.Sizeof(n2)) 是unsafe包的一个函数,可以返回n1变量占用的字节数fmt.Printf("n2 的类型 %T n2占用的字节数为 %d ",n2,unsafe.Sizeof(n2))}
4)Golang程序中整型变量在使用时,遵守保小不保大的原则,即在保证程序正确运行下,尽量使用占用空间小的数据类型。【如年龄】
//golang程序中整型变量在使用时,遵守保大不保小的原则//即,在程序正常运行下,尽量使用占用空间小的数据类型var age byte = 45
5)bit:计算机中最小的存储单位。byte:计算机中基本存储单元.
2)小数类型浮点型
基本介绍
小数类型就是用于存放小数的,比如 1.2 0.23 1.911
案例演示:
func main(){var price float32 = 89.12fmt.Println("price",price)}
浮点类型的使用
func main(){var price float32 = 89.12fmt.Println("price",price)var num1 float32 = -0.00089var num2 float64 = -780956.09fmt.Println("num1",num1,"num2",num2)}
//位数部分可能丢失,造成精度损失。 -123.00000901var num3 float32 = -123.0000901var num4 float64 = -123.0000901fmt.Println("num3",num3,"num4",num4)
说明float64 的精度比float32的更高
//保存精度更高的数应该用float64
package mainimport "fmt"//演示golang中小数类型的使用
func main(){var price float32 = 89.12fmt.Println("price",price)var num1 float32 = -0.00089var num2 float64 = -780956.09fmt.Println("num1",num1,"num2\n",num2)//位数部分可能丢失,造成精度损失。 -123.00000901var num3 float32 = -123.0000901var num4 float64 = -123.0000901fmt.Println("num3",num3,"num4",num4)//golang的浮点类型默认为声明为float64 类型var num5 = 1.1fmt.Printf("num5的数据类型是 %T\n",num5) //输出结果为float64//十进制整数形式.如:5.12 .512(必须有小数点)num6 := 5.12num7 := .123 //=> 0.123fmt.Println("num6",num6,"num7\n",num7)//科学计数法模式num8 := 5.1234e2 // ?5.1234 *10的2次方num9 := 5.1234E2 // ?5.1234 *10的2次方num10 := 5.1234E-2 // ?5.1234 *10的-2次方fmt.Println("num8=",num8,"num9=",num9,"num10",num10)
}
3)字符类型
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存
字符串就是一串固定长度的字符连接起来的字符序列,Go的字符是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成,而go语言的字符串不同,他是由字节组成的
[官方string、归属为https://tour,go-zh.org/basic/11]
package mainimport ("fmt"
)//演示golang中字符类型使用
func main(){var c1 byte = 'a'var c2 byte = '0'//当我们输出byte值时,就直接输出了对应的字符ASCI码值fmt.Println("c1=",c1,"c2=",c2) //c1=92 c2=48//如果我们希望输出对应的字符,需要使用格式化输出fmt.Printf("c1=%c c2=%c\n",c1,c2) //输出结果为 c1=a c2=0//var c3 byte = '北' //overflow 溢出var c3 int = '北' //汉字的ASCI码值比较大fmt.Printf("c3=%c c3对应的码值为=%d",c3,c3) //北 c3对应的码值为21271
}
对上面代码说明
1)如果我们保存的字符在ASCII表,比如0-1,a-z,A-Z.直接可以保存到byte
2)如果我们保存的字符对应的码值大于255,这是我们考虑int类型
3)如果我们需要按照字符的方式输出,这时我们只需要格式化输出printf(“%c”)
字符类型使用细节
package mainimport ("fmt"
)//演示golang中字符类型使用
func main(){var c1 byte = 'a'var c2 byte = '0'//当我们输出byte值时,就直接输出了对应的字符ASCI码值fmt.Println("c1=",c1,"c2=",c2) //c1=92 c2=48//如果我们希望输出对应的字符,需要使用格式化输出fmt.Printf("c1=%c c2=%c\n",c1,c2) //输出结果为 c1=a c2=0//var c3 byte = '北' //overflow 溢出var c3 int = '北' //汉字的ASCI码值比较大fmt.Printf("c3=%c c3对应的码值为=%d\n",c3,c3) //北 c3对应的码值为21271var c4 int = 22269 // 22269的ASCI码是国字fmt.Printf("c4=%c",c4) //输出的结果就是国字//字符类型是可以进行运算的,相当于于一个整数,运算时是按照码值进行运算的var num1 = 10 + 'a' //10 +97 =107fmt.Println("num1=",num1)
}
字符类型的本质探讨
1)字符类型存储到计算机中,需要将字符对应的码值(整数)找出来
存储:字符=》对应值–》二进制–》存储
读取:二进制—》码值----》字符—》读取
2)字符和码值的对应关系是通过字符编码表决定的(是规定好的)
3)Go语言的编码都统一成了utf-8,和其他的编程语言来说,非常的方便,很统一,再也没有编码的困扰了
布尔类型
基本介绍
1)布尔类型也是bool类型,bool类型数据只允许取值true和false
2)bool类型占一个字节
3)boolean类型适用于逻辑运算,一般用于程序流程控制:这个后面会详细介绍
package mainimport ("fmt""unsafe"
)
func main(){var b = falsefmt.Println("b=",b)//注意事项//1.bool类型占用存储空间是1个字节fmt.Println("b 的占用空间 =",unsafe.Sizeof(b) ) //b占用空间为1//2.bool类型只能取true或者false}
if条件控制语句
for循环控制语句
4)字符串(String)类型
基本介绍
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的Go语言的字符串的字节使用UTF-8编码标识Unicode文本
package mainimport ("fmt"
)//演示golang中字符串类型使用
func main(){//string的基本使用var address string = "北京长城 110 hello world"fmt.Println(address)}
String 使用的注意事项和细节
1)Go语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用UTF-8编码,乱码问题不会困扰程序员
2)字符串一旦赋值,字符串就不能更改了,在go中字符串是不可变的
//字符串一旦赋值了,字符串就不能修改了,在Go中字符串是不可变的var str ="hello"//str[0] = 'a' //这里不能去修改str的内容,即Go中的字符串是不可变的fmt.Println(str)
3)字符串的两种表示形式
(1)双引号,会识别转义字符
(2)反引号,以字符串的原生形式输出,包括换行和特殊字符,可以防止攻击、输出源代码等效果
4)字符串的拼接方式
//字符串拼接方式var str5 = "hello" + "world"str5 += "haha"fmt.Println(str5)
5)当一行字符串太长时,需要使用到多行字符串,可以如下处理
// var str6 = "hello" + "world" // +"hello"+"hello"// +"world"// fmt.Println(str6) //会报错,+号要在上面var str6 = "hello" + "world" +"hello"+"hello"+"world"fmt.Println(str6) //正确输出
5)基本数据类型默认值
基本介绍:
在go中所有的数据类型都有一个默认值,当程序员没有赋值时就会保留默认值,在go中,默认值又叫0值,以下就是这个默认值:
基本数据类型一览表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ebld3UFY-1692969282528)(D:\myfile\数据库\数据库资料\Mysql笔记(黑马)\结构图\新建文件夹\pic12.jpg)]
//查看这些基本数据类型的默认值
//%v表示的意思是按照变量的值输出var a int //0var b float32 //0var c float64 // 0 var isMarryied bool //falsevar name string // " "fmt.Printf("a=%d,b=%f,c=%v,isMarryied=%v,name=%v",a,b,c,isMarryied,name)
6)Golang基本数据类型的转换
介绍
Golang和java/c不同,Go在不同类型的变量之间赋值时需要显示转换,也就是说Golang中数据类型不能自动转换
基本语法
表达式T(v)将值V转换为类型T
T:就是数据类型,比如int32,int64,float32等等
V:就是需要转换的变量
package mainimport ("fmt"// "unsafe"
)
//演示golang中基本数据类型的转换
func main(){var i int = 100
//希望将i => float
var n1 float32 =float32(i)
var n2 int8 = int8(i)
var n3 int64 = int64(i) //低精度转换为高精度
fmt.Printf("i=%v n1=%v n2=%v n3=%v",i,n1,n2,n3) }
细节说明
1)G哦,数据类型的转换可以是从表示范围小–>表示范围大,也可以是 范围大–》范围小
2)被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化
/被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化
fmt.Printf("i type is %T",i) //输出结果为int32
}
3)在转换中,比如将int64转成int8[-128~127],编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样。因此在转换时需要考虑范围。
var nu1 int64 =999999
var nu2 int8 = int8(nu1) //结果会按照溢出处理
fmt.Println("nu2=",nu2) //输出结果是63
练习题:
func main(){//练习题
var n1 int32 = 12
var n2 int64
var n3 int8n2 = n1+ 20 //int32交给int64 错误
n3 =n1 + 20 //int32交给int8 错误
func main(){//练习题
var n1 int32 = 12
var n2 int64
var n3 int8
var n4 int8n2 = int64(n1)+ 20
n3 =int8(n1) + 128 // 编译不通过
n4 = int8(n1) +127 //编译不通过 但是结果不是127+12
fmt.Println("n2=",n2,"n3",n3)}
6.基本数据类型和string的转换
1)基本介绍
在程序开发中,我们经常将基本数据类型转换成string或者将string转换为基本数据类型
基本类型转为string类型
方式1:fmt,Sprintf(“%参数”,表达式)
func main(){var num1 int = 99var num2 float64 = 23.456var b bool = truevar mychar byte = 'h'var str string//是用第一种方式来转换 fmt.Sprint()str = fmt.Sprintf("%d",num1) //num1转化为stringfmt.Printf("str type %T str=%v\n",str,str) //结果为string 和99str = fmt.Sprintf("%f",num2)fmt.Printf("str type %T str=%v\n",str,str) //float64 23.456str = fmt.Sprintf("%t",b)fmt.Printf("str type %T str=%v\n",str,str)str = fmt.Sprintf("%c",mychar)fmt.Printf("str type %T str=%v",str,str)}
2)函数的介绍
func Sprintf
func Sprintf(format string, a ...interface{}) string
Sprint根据format参数生成格式化的字符串并返回该字符串
参数需要和表达式的数据类型相匹配
fmt.Sprintf()会返回转换后的字符串
方式2:fmt.Sprintf()…会返回转换后的字符串
func FormatBool(b bool) string
func FormatFloat(f float64,fmt byte,prec bitSize int) string
func FormatInt(int64,base int) string
func FormatUnit(i int64,base int) string//第二种方式 是用 strconv函数的包var num3 int = 99var num4 float64 = 23.456var b2 bool = true//将int转换为字符串类型str = strconv.FormatInt(int64(num3),10)fmt.Printf("str type %T str=%q\n",str,str)//说明 f代表格式str = strconv.FormatFloat(num4,'f',10,64)fmt.Printf("str type %T str=%q\n",str,str)//将bool类型转换为字符串类型str =strconv.FormatBool(b2)fmt.Printf("str type %T str=%q\n",str,str)
案例演示:
package mainimport("fmt""strconv"
)//golang基本数据类型转stringfunc main(){var num1 int = 99var num2 float64 = 23.456var b bool = truevar mychar byte = 'h'var str string//是用第一种方式来转换 fmt.Sprint()str = fmt.Sprintf("%d",num1) //num1转化为stringfmt.Printf("str type %T str=%v\n",str,str) //结果为string 和99str = fmt.Sprintf("%f",num2)fmt.Printf("str type %T str=%v\n",str,str) //float64 23.456str = fmt.Sprintf("%t",b)fmt.Printf("str type %T str=%v\n",str,str)str = fmt.Sprintf("%c",mychar)fmt.Printf("str type %T str=%v",str,str)//第二种方式 是用 strconv函数的包var num3 int = 99var num4 float64 = 23.456var b2 bool = true//将int转换为字符串类型str = strconv.FormatInt(int64(num3),10)fmt.Printf("str type %T str=%q\n",str,str)//说明 f代表格式str = strconv.FormatFloat(num4,'f',10,64)fmt.Printf("str type %T str=%q\n",str,str)//将bool类型转换为字符串类型str =strconv.FormatBool(b2)fmt.Printf("str type %T str=%q\n",str,str)//strconv包中有一个函数Itoavar num5 int = 4567str = strconv.Itoa(num5)fmt.Printf("str type %T str=%q\n",str,str)}
7.String类型转基本数据类型
1)使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pWbnfC66-1692969282529)(D:\myfile\数据库\数据库资料\Mysql笔记(黑马)\结构图\新建文件夹\pic13.jpg)]
package mainimport("fmt""strconv"
)//golang基本数据类型转stringfunc main(){var str string = "true"var b bool//b, _ = strconv.ParseBool(str)//说明//1.strconv,PareseBool(str) 函数会返回两个值(value bool,err erro)//2.因为我只想获取到value bool ,不想获取 err所以我是用下划线b , _ = strconv.ParseBool(str)fmt.Printf("b type %T b=%v\n",b,b) var str2 string ="123456"var n1 int64var n2 intn1, _ = strconv.ParseInt(str2,10,64)n2 = int(n1) //将int64转化成int类型的fmt.Printf("n1 type %T n1=%v\n",n1,n1)fmt.Printf("n2 type %T n2=%v\n",n2,n2) var str3 string = "123.456"var f1 float64 f1, _ = strconv.ParseFloat(str3, 64)fmt.Printf("f1 type %T f1=%v\n",f1,f1)}
2)注意事项
在将string类型转成基本数据类型时,要确保string类型能够转换成有效的数据,比如我们可以把“123” 转成一个整数,但是不能把"hello" 转成一个整数,如果这样做,Golang直接将其转成0.
//注意var str4 string = "hello"var n3 int64n3, _ =strconv.ParseInt(str4, 10,64)fmt.Printf("n3 type %T n3=%v\n",n3,n3) //输出是0
b, _ = strconv.ParseBool(str)
//说明
//1.strconv,PareseBool(str) 函数会返回两个值(value bool,err erro)
//2.因为我只想获取到value bool ,不想获取 err所以我是用下划线
b , _ = strconv.ParseBool(str)
fmt.Printf(“b type %T b=%v\n”,b,b)
var str2 string ="123456"
var n1 int64
var n2 int
n1, _ = strconv.ParseInt(str2,10,64)
n2 = int(n1) //将int64转化成int类型的
fmt.Printf("n1 type %T n1=%v\n",n1,n1)
fmt.Printf("n2 type %T n2=%v\n",n2,n2) var str3 string = "123.456"
var f1 float64
f1, _ = strconv.ParseFloat(str3, 64)
fmt.Printf("f1 type %T f1=%v\n",f1,f1)
}
### 2)注意事项在将string类型转成基本数据类型时,要确保string类型能够转换成有效的数据,比如我们可以把“123” 转成一个整数,但是不能把"hello" 转成一个整数,如果这样做,Golang直接将其转成0.```go
//注意var str4 string = "hello"var n3 int64n3, _ =strconv.ParseInt(str4, 10,64)fmt.Printf("n3 type %T n3=%v\n",n3,n3) //输出是0
相关文章:

go语言学习之有关变量的知识
文章目录 变量的学习1.变量的使用步骤2.变量的注意事项3.变量使用的三种方式:4.程序中 号的使用5.变量的数据类型1)int数据类型2)小数类型浮点型3)**字符类型**4)**字符串(String)类型**5&…...

算法通过村第8关【青铜】| 二叉树的经典算法题
二叉树的双指针 1.相同的树 思路:递归的挨个比较是否相同 class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if((p null&&q!null) || (p ! null && q null) || (p!null&&q!null&&p.val ! q.val)){return f…...

Open3D 点云均值滤波
目录 一、算法原理1、均值滤波2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、均值滤波 对待处理的当前采样点,选择一个模板,该模板由其邻近的若干个数据点组成,…...

C语言指针入门详解
一、指针简介 指针(Pointer)是C语言的一个重要知识点,其使用灵活、功能强大,是C语言的灵魂指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问指针就是地址,通过访问此地址来获取该地址存储的数据 …...

软件工程(十四) 设计模式之结构型模式(二)
1、组合模式 简要说明 将对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 速记关键字 树形目录结构 类图如下 由类图其实可以看出,组合模式就是将具有父子关系的结构,组装形成一棵树,并且根据规范,树干节点和叶子节…...

不解压的方式直接更新jar包内部的内容
前言 如果线上直接更新一个class,可以不用解压,直接利用jar命令直接更新jar报的资源和内容 更新jar包内容文件 Jar 工具提供了一个 u 选项,你可以通过修改其清单或添加文件来更新现有 JAR 文件的内容。 添加文件的基本命令具有以下格式&am…...

软件工程(八) UML之类图与对象图
1、类图与对象图 1.1、类图与对象图的概念 类图(class diagram)描述一组类、接口、协作和它们之间的关系 对象图(object diagram)描述一组对象及它们之间的关系、对象图描述了在类图中所建立的事物实例的静态快照。 1.2、类图与对象图的区别 类图和对象图基本上是一样…...

【Unity3D赛车游戏】【五】Unity中汽车加速效果是如何优化的?
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...

龙智案例:某大型零售企业如何打造高速、现代化的ITSM体系
在2023 DevOps国际峰会北京站的现场,我们对话了龙智咨询顾问胡若愚,他为我们奖助了一位零售业的大型客户是如何在数字化浪潮中,凭借龙智提供的Jira Service Management产品及服务,打造现代化ITSM平台,提升客户满意度。…...

jdk 03.stream
01.集合处理数据的弊端 当我们在需要对集合中的元素进行操作的时候,除了必需的添加,删除,获取外,最典型的操作就是集合遍历 package com.bobo.jdk.stream; import java.util.ArrayList; import java.util.Arrays; import java.ut…...

“华为杯”研究生数学建模竞赛2018年-【华为杯】C题:对恐怖袭击事件记录数据的量化分析
目录 摘 要: 一、 问题背景与重述 1.1 问题背景 1.2 问题重述 二、 问题分析...

java8的reduce方法
在 Java 8 中,reduce 是一个流操作方法,用于将流中的元素按照指定的操作进行归约(reduce)操作,最终得到一个结果。 reduce 方法有三种重载形式: T reduce(T identity, BinaryOperator<T> accumulato…...

Mac发现有的软件不能上网的破解之法
1、Mac上打开终端 terminal ,获取 root 权限。 sudo -i 2、编辑 hosts 文件 vim /private/etc/hosts 3、找到被禁止软件的数据请求域名,然后删除相关行,快捷件dd,然后:wq保存退出 比如百度 127.0.0.1 pan.baidu.com ##sec 印…...

定时检测接口是否正常飞书告警脚本
第一版 支持多个接口地址,循环检测,定时每分钟执行一次脚本 告警效果 脚本 飞书机器人创建忽略跳过,各大协作平台大同小异拿出机器人hook地址 #!/bin/bash URL_LIST=(https://gatewaxxxxxxxxxxxxxxxxxx https://sandbox-gatexxxxxxxxxxxxxxxxxx)for URL in ${URL_LIST[*...

【MySQL】2、MySQL数据库的管理
常用 describe user; Field:字段名称 Type:数据类型 Null :是否允许为空 Key :主键 Type:数据类型 Null :是否允许为空key :主键 Default :默认值 Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2 id:1 3 5 …...

8086汇编test指令学习
Test指令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。Test的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。 TEST AX,BX 与 AND AX,BX 命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保…...

简单js逆向案例(2)
文章目录 前文分析完整代码结尾 前文 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 分析 目标网址 aHR0cHM6Ly9zZWFyY2guYmlkY2VudGV…...

azure data studio SQL扩展插件开发笔记
node.js环境下拉取脚手架 npm install -g yo generator-azuredatastudio yo azuredatastudio 改代码 运行 调试扩展,在visual studio code中安装插件即可 然后visual studio code打开进行修改运行即可 image.png 运行后自动打开auzre data studio了, 下面…...

【二分】搜索旋转数组
文章目录 不重复数组找最小值,返回下标重复数组找最小值,返回下标不重复数组找target,返回下标重复数组找target,返回bool重复数组找target,返回下标 不重复数组找最小值,返回下标 class Solution {public …...
APSIM模型应用与参数优化、批量模拟
APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生长模拟模型之一。APSIM模型有Classic和Next Generation两个系列模型,能模拟几十种农作物、牧草和树木的土壤-植物-大气过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安…...

QT使用QXlsx实现对Excel sheet的相关操作 QT基础入门【Excel的操作】
准备:搭建环境引用头文件QT中使用QtXlsx库的三种方法 QT基础入门【Excel的操作】_吻等离子的博客-CSDN博客 #include "xlsxdocument.h"QTXLSX_USE_NAMESPACE // 添加Xlsx命名空间(https://github.com/dbzhang800/QtXlsxWriter) or QXLSX_USE_NAMESPACE // 添加Xl…...

ARM DIY(四)WiFi 调试
文章目录 焊接打开内核编译选项重新编译内核烧录 && 运行 && 测试完善脚本测速手搓天线正式天线 焊接 换个粗点的风枪嘴,让热风覆盖 RTL8823BS 整体模块,最终实现自动归位 焊接 SDIO 接口的上拉电阻以及复位引脚上拉电阻 硬件部分就这…...

AIGC ChatGPT 实现动态多维度分析雷达图制作
雷达图在多维度分析中是一种非常实用的可视化工具,主要有以下优势: 易于理解:雷达图使用多边形或者圆形的形式展示多维度的数据,直观易于理解。多维度对比:雷达图可以在同一张图上比较多个项目或者实体在多个维度上的…...

Vue2向Vue3过度核心技术路由
目录 1 路由介绍1.思考2.路由的介绍3.总结 2 路由的基本使用1.目标2.作用3.说明4.官网5.VueRouter的使用(52)6.代码示例7.两个核心步骤8.总结 3 组件的存放目录问题1.组件分类2.存放目录3.总结 4 路由的封装抽离5 Vue路由-重定向1.问题2.解决方案3.语法4…...

ElasticSearch常用方法
ElasticSearch:是一个储存、检索、数据分析引擎。 在互联网项目中我们经常会按一定的条件去索引我们指定的数据,但是在大量的数据中我们如果直接查询数据库效率是非常低的,ElasticSearch就可以很好的帮我们完成检索。 es封装了api提供给我我们直接操作…...

nginx下添加http_ssl_module并且配置域名,指定端口
1.切换到源码包: cd /home/nginx-1.23.1 2.进行编译: ./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 3.配置完成后,运行命令: make make命令执行后,不要进行mak…...

【PHP】PHP变量
1、变量介绍 PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,必须在使用变量前先声明(定义)变量的类型和名称。 <?php $x5;…...

KVM创建虚拟机可访问外网+可使用Xshell等工具连接
创建虚拟机时使用桥接网络模块即可,如下: 1、创建一个存储卷(虚拟机的磁盘) 2、创建虚拟机时选择网络 3、系统安装完成后配置固定IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOTyes BOOTPROTOstatic IPADDR16.32.15.60 GATEWAY16.32.15.2…...

数据库——Redis 没有使用多线程?为什么不使用多线程?
文章目录 Redis6.0 之后为何引入了多线程? 虽然说 Redis 是单线程模型,但是, 实际上,Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。 不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令&a…...

Node.JS教程
文章目录 Node.JSNode.js学习指南一、Node.js基础1.认识Node.js2.开发环境搭建3. 模块、包、commonJS3.1、为什么要有模块化开发?3.2、CommonJS规范3.3、 modules模块化规范写法 4.Npm&Yarn4.1、npm使用4.2、全局安装nrm4.3、yarn使用 持续更新中总结 Node.JS N…...