Go学习(一)
变量
-
init
函数在main
函数之前执行func init() {fmt.Println("This is init function") }func main() {fmt.Println("This is main function") }// 输出内容 // This is init function // This is main function
-
标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,那使用这种标识符的对象就可以被外部包的代码所使用(客户端需导入),这被称为导出
(类似于面向对象中的public
); -
标识符如果以小写字母开头,则对包外不可见,但在整个包的内部是不可见且可用的
(类似于面向对象中的private
) -
一行代表一个语句结束(不需要以分号
;
结束,由编译器自动完成)
如果打算将多个语句写在同一行,则必须使用;
进行区分(不建议使用) -
数字类型
类型 描述 int8/int16/int32/int64 有符号整数 uint8/uint16/uint32/uint64 无符号整数 float32/float64 IEEE-754 32/64位浮点型数 complex64/complex128
32/64位实数和虚数 byte
类似uint8 rune
类似 int32 uint 32或64位 int 与 uint 一样大小 unitptr
无符号整型,用于存放一个指针 -
变量
全局变量与局部变量可以同名,参考全局变量
// 变量声明 var identifier type // 1、指定变量类型(不赋值则使用类型默认值) var v_name v_type var v_name v_type = value // 2、类型推导 var v_name = value // 3、省略 var,使用 := 进行声明;只能用于声明局部变量 v_name := value// 下面使用 := 的定义是正确的 var outer = true func main() {// a、打印方法外定义的变量定义fmt.Println(outer)// b、如果是全局变量,可以进行重新定义(包括类型可以不一样)(fixme 应该不是同一个变量了)outer := "使用 := 重新定义变量"fmt.Println(outer)// c、如下定义不能编译通过// var inner [string] = "局部变量"// fmt.Println(inner)// inner := "使用 := 重新定义局部变量无法编译通过"// fmt.Println(inner) }// 局部变量:同类型多个变量 // 1、指定类型(三个变量类型一致;可以是全局变量) var vname1,vname2,vname3 type vname1,vname2,vname3 = v1, v2, v3 // 2、类型推导(可以是不同的类型;可以是全局变量;并行|同时赋值) var vname1,vname2,vname3 = v1, v2, v3 // 3、初始化声明(可以是不同的类型;变量必须不能是已经在方法内部声明过的;并行|同时赋值) vname1,vname2,vname3 := v1, v2, v3 // 全局变量:类型不同的多个变量声明(只能是全局变量) var (v_name_1 type1v_name_2 type2 )
-
值类型与引用类型
- 值类型
- 所有像
int
、float
、bool
和string
这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值 - 当使用等号
=
将一个变量的值赋值给另一个变量时,如:j = i
,实际上是在内存中将 i 的值进行了拷贝 - 可以通过
&i
来获取变量 i 的内存地址 - 值类型的变量的值存储在栈中
- 所有像
- 引用类型
- 更复杂的数据通常会需要使用多个值,这些数据一般使用引用类型保存
- 一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个值所在的位置(这个内存地址也称指针)
- 同一个引用类型的指针指向的多个值在内存中可以是连续的,也可以是分散的
- 值类型
-
局部变量禁止只声明不使用;全局变量允许只声明不使用
var outer string = "全局变量允许只声明不使用" func main() {// Unused variable 'inner'var inner = "局部变量禁止只声明不使用" }
-
如果想要简单的交换两个变量的值,可以使用
a, b=b, a
-
空白标识符
_
也被用于抛弃值,如值 5 在_, b := 5, 7
中被抛弃
_
实际上只是一个可写变量,不能获取其值
(Go 语言中你必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值) -
并行赋值也被用于当一个函数返回多个返回值
val, err = Func1(var1)
常量
-
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
-
定义格式
// 类型说明符可省略 const identifier [type] = value // 支持同时定义多个同类型变量 const c_name_1, c_name_2 = value1, value2// 可以定义同名的局部和全局常量 const a1, a2, a3 = "a1", 23, true func method() {// 这么定义不会报错const a1, a2 = "aa1", "aa2"// 优先输出局部变量定义,没有则输出全局变量值fmt.Println(a1, a2, a3) }
-
常量还可以用作枚举
const (Unknown = 0Female = 1Male = 2 )
-
常量定义中可以使用
len()
、cap()
、unsafe.Sizeof()
计算表达式的值(必需是内置函数)const (a = "abc"b = len(a)c = unsafe.Sizeof(a) )
-
iota
,特殊常量,可以认为是一个可以被编译器修改的常量
在每一个const
关键字出现时,被重置为0
,然后再下一个const
出现之前,每出现一次iota
,其所代表的数字就会自动增加1
// 定义一 const (a = iotab = iotac = iota ) // 接上定义二 // const出现,值被重置 const (d = iotae = iotaf = iota ) // a=0,b=1,c=2 // d=0,e=1,f=2 // 简写为 const (a = iotabc )
-
复杂一些的用法
// 示例一 const (a = iota // a=0b // b=1c // c=2d = "ha" // d="ha",iota+=1=3e // e="ha",iota+=1=4f = 100 // f=100,,iota+=1=5g // g=100,,iota+=1=6h = iota // 恢复计数 h=7i // i=8 ) // 示例二 const (i = 1 << iota // i=1<<0=1j = 3 << iota // j=3<<1=6k // k=3<<2=12l // l=3<<3=24 )
运算符
-
算术运算符
含
+
、-
、*
、/
、%
、++
、--
func method() {a := 10b := 20var c intc = a + bc = a - bc = a * bc = a / bc = a % b// 等效于:a=a+1a++// 等效于:a=a-1a--// 没有 ++a 或 --a 的操作 }
-
关系运算符
含
==
、!=
、>
、<
、>=
、<=
-
逻辑运算符
含
&&
、||
、!
- 没有单与、单或
- go的风格是不必将逻辑运算符计算使用括号包裹
func method() {a := trueb := true// go 的风格是不必将逻辑运算使用括号包裹if a || b {fmt.Println("a||b is true")}// 逻辑运算符中没有单与、单或// if a | b{} }
-
位运算符
可以对整数在内存中的二进制位进行操作
含
&
、|
、^
运算符 说明 &
与运算,全真为真 |
或运算,全假才假 ^
异或运算,相同为假,不同为真 <<
左移运算符,左移n位就是乘以2的n次方(高位丢弃,低位补0) >>
右移运算符,右移n位就是除以2的n次方 -
赋值运算符
运算符 说明 实例 =
将一个表达式的值赋给一个左值 C = A + B +=
相加后再赋值 C += A 等于 C = C + A -=
相减后再赋值 C -= A 等于 C = C - A *=
相乘后再赋值 C *= A 等于 C = C * A /=
相除后再赋值 C /= A 等于 C = C / A %=
求余后再赋值 C %= A 等于 C = C % A <<=
左移后赋值 C <<= 2 等于 C = C << 2 >>=
右移后赋值 C >>= 2 等于 C = C >> 2 &=
按位与后赋值 C &= 2 等于 C = C & 2 ^=
按位异或后赋值 C ^= 2 等于 C = C ^ 2 |=
按位或后赋值 C |= 2 等于 C = C | 2 -
其他运算符
运算符 说明 实例 &
变量内存地址 &var_name
返回变量的实际地址*
(fixme)指针变量 *var_name
是一个指针变量 -
运算符优先级(由高到低)
优先级 运算符 7 ^ ! 6 * / % <> & &^ 5 + - | ^ 4 == != < = > 3 <- 2 && 1 ||
条件语句
语句 | 描述 |
---|---|
if 语句 | if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |
if…else 语句 | if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |
if 嵌套语句 | 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。 |
switch 语句 | switch 语句用于基于不同条件执行不同动作。 |
select 语句 | select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 |
Switch
-
switch
语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break
-
可以在一个
case
中同时测试多个可能符合条件的值,使用逗号,
分隔 -
所有
case
候选值必需同switch
变量(表达式)相同类型(否则编译错误) -
有两种写法
//变量 var_name 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值 switch var_name {case val1:// 匹配项中不需要添加 break...case val2:// case 中可以存在多个 value...default:... }
示例:
func method() {grade := "B"marks := 90// 写法一switch marks {case 90:grade = "A"// case 中可以同时有多个可能符合条件的值case 80:grade = "B"// case 中不需要 breakdefault:grade = "C"}// 写法二switch {case grade == "A":fmt.Println("优秀")// case 中可以同时有多个可能符合条件的值case grade == "B", grade == "C":fmt.Println("良好")// case 中不需要 breakdefault:fmt.Println("差")}fmt.Println("等级是: ", grade) }
Type Switch
(fixme)
switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型
switch x.(type){case type:statement(s) case type:statement(s)/* 你可以定义任意个数的case */default: /* 可选 */statement(s)
}
示例:
func method() {// 定义接口var x interface{}switch i := x.(type) {case nil:fmt.Printf(" x 的类型 :%T", i)case int:fmt.Printf("x 是 int 型")case float64:fmt.Printf("x 是 float64 型")// case 项也可以是 funccase func(int) float64:fmt.Printf("x 是 func(int) 型")// 可以测试多个可能符合条件的值case bool, string:fmt.Printf("x 是 bool 或 string 型")default:fmt.Printf("未知型")}
}
Select
(fixme)
- 与操作系统中的
select
比较相似- 与
switch
有相似的控制结构,但这些case
中的表达式必须都是Channel
的收发操作
- 是一个控制结构;
- select 随机执行一个可运行的 case;
- 如果没有 case 可运行,select 将阻塞,直到有 case 可运行;
- 默认的 default (如果存在)必需可以正常执行
select {case communication clause :statement(s) case communication clause :statement(s)/* 你可以定义任意数量的 case */default : /* 可选 */statement(s)
}
- 每个 case 都必须是一个
Channel
- 所有
Channel
表达式都会被求值 - 所有被发送的表达式都会被求值
- 如果任意某个
Channel
可以执行,它就执行;其他被忽略 - 如果有多个 case 可以运行,select 会随机公平的选出一个执行;其他被忽略
- 如果没有 case 可以运行:
- 存在 default ,执行 default
- 没有 default,阻塞直到某个
Channel
可以进行(Go 不会对 channel 或值进行求值)
select的知识点小结如下:
- select 语句只能用于信道的读写操作
- select 中的 case 条件(非阻塞)是并发执行的,select 会选择先操作成功的那个 case 条件去执行,如果多个同时返回,则随机选择一个执行,此时将无法保证执行顺序。对于阻塞的 case 语句会直到其中有信道可以操作,如果有多个信道可操作,会随机选择其中一个 case 执行
- 对于 case 条件语句中,如果存在信道值为 nil 的读写操作,则该分支将被忽略,可以理解为从 select 语句中删除了这个 case 语句
- 如果有超时条件语句,判断逻辑为如果在这个时间段内一直没有满足条件的 case ,则执行这个超时 case 。如果此段时间内出现了可操作的 case ,则直接执行这个 case 。一般用超时语句代替 default 语句
- 对于空的 select{} ,会引起死锁
- 对于 for 中的 select{} ,也有可能会引起 cpu 占用过高的问题
循环语句
循环类型 | 描述 |
---|---|
for 循环 | 重复执行语句块 |
循环嵌套 | 在 for 循环中嵌套一个或多个 for 循环 |
循环类型
for 循环
// 三种形式,只有一种使用分号
// 1、与 C 的 for 同(同 Java ,没有括号)
for init; condition; post { }
// 2、与 C 的 while 同
for condition { }
// 3、与 C 的 for(;;) 同
for { }
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环
for key, value := range oldMap {newMap[key] = value
}
示例:
func method() {numbers := [6]int{1, 2, 3, 5}for i, x := range numbers {fmt.Printf("第 %d 位 x 的值 = %d\n", i, x)}
}
嵌套循环
// 同 Java ,没有括号
for [condition | ( init; condition; increment ) | Range]
{for [condition | ( init; condition; increment ) | Range]{statement(s)}statement(s)
}
循环控制语句
控制语句 | 描述 |
---|---|
break 语句 | 经常用于中断当前 for 循环或跳出 switch 语句 |
continue 语句 | 跳过当前循环的剩余语句,然后继续进行下一轮循环。 |
goto 语句 | 将控制转移到被标记的语句。 |
goto
(不建议使用)
可以无条件的转移到过程中指定的行
通常与条件语句配合使用,实现条件转移,构成循环、跳出循环的等功能
一般不建议使用goto
,以免造成程序流程混乱,使程序难以理解或调试困难
goto label
..
.
label: statement
示例:
// 1、终止嵌套循环
func method1() {for x := 0; x < 10; x++ {for y := 0; y < 10; y++ {if y == 2 {// 跳转到标签(同时也会终止所有循环,有点类似 Java 中的 label 使用)goto breakHere// 直接使用只会退出当前循环// break}}}// 手动返回, 避免执行进入标签return// 标签
breakHere:fmt.Println("done")
}// 2、代码复用
func method2() {err := firstCheckError()if err != nil {goto onExit}err = secondCheckError()if err != nil {goto onExit}fmt.Println("done")return
onExit:fmt.Println(err)exitProcess()
}
函数
- 最基本的代码块,用于执行一个任务
- 最少有一个 main 函数
- 逻辑上每个函数执行的是指定的任务
- 函数名称,参数列表和返回值(类型,个数,顺序)一起构成了函数签名
- 标准库提供了多种可动用的内置的函数(存在于
builtin
和unsafe
标准库)
定义:
// 1、可以返回多个值
// 2、如果没有返回值,return_types 可缺省
// 3、入参类型相同可使用简单定义
func function_name( [parameter list] ) [return_types] {// function body
}
func function_name( [parameter list] ) (type1,type2,...,typeN) {// function body
}func max(a, b int) int {// 方法体省略return ret
}
func swap(x, y string) (string, string) {return y, x
}
函数参数
传递类型 | 描述 |
---|---|
值传递 | 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 |
引用传递 | 引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 |
默认情况下,Go 语言使用的是值传递,即在调用过程中不会影响到实际参数
引用传递的一个例子(具体用法待研究):
// 引用传递入参及方法体有所不同
func swap(x *int, y *int) {var tmp inttmp = *x*x = *y*y = tmp
}
函数用法
函数用法 | 描述 |
---|---|
函数作为值 | 函数定义后可作为值来使用 |
闭包 | 闭包是匿名函数,可在动态编程中使用 |
方法 | 方法就是一个包含了接受者的函数 |
/* 声明函数变量 */
getSquareRoot := func(x float64) float64 {return math.Sqrt(x)
}
/* 闭包 */
func getSequence() func() int {i := 0return func() int {i += 1return i}
}
/* 函数方法 */
func (variable_name variable_data_type) function_name([var_name type]) [return_type]{/* 函数体*/
}
函数方法:相当于Java
中的一个类拥有的自定义方法
/* 定义函数 fixme */
type Circle struct {radius float64
}// 该方法属于 Circle 类型对象中的方法
func (c Circle) getArea() float64 {//c.radius 即为 Circle 类型对象中的属性return 3.14 * c.radius * c.radius
}
// 方法定义没错,但不属于 Circle 类型对象的方法
func getArea2(c Circle) float64 {return math.Pi * c.radius * c.radius
}
// 方法可以接收入参
func (c Circle) getPerimeter(x, y int) float64 {fmt.Println("x=", x, ",y=", y)return math.Pi * c.radius * 2
}func main() {var c1 Circlec1.radius = 10.00// 方法调用fmt.Println("Area of Circle(c1) = ", c1.getArea())// getArea2 不是 Circle 类对象的方法// fmt.Println("Area of Circle(c1) = ", c1.getArea2())area := getArea2(c1)fmt.Println("area = ", area)fmt.Println("Perimeter of Circle(c1) = ", c1.getPerimeter(10, 15))
}
变量作用域
变量可以在三个地方声明:
- 函数内定义的变量称为局部变量
- 函数外定义的变量称为全局变量
- 函数定义中的变量称为形式参数
局部变量
- 在函数体内声明
- 作用域只在函数体内
- 参数和返回值变量也是局部变量
全局变量
- 在函数体外声明
- 可以在整个包甚至外部包(被导出后)使用
全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑
形式参数(形参)
出现在函数/方法形参表中的变量(当作局部变量使用)
初始化局部和全局变量
数据类型 | 初始化默认值 |
---|---|
int | 0 |
float32 | 0 |
pointer (fixme) | nil |
参考资料:
- Go 教程
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 如何释放和管理 Mac 上的内存?
你的 Mac 速度变慢了吗?可能有内存问题,需要清除计算机的内存缓存。以下是您可以用来管理计算机内存的一些步骤。 什么是内存? RAM 代表随机存取存储器,是计算机中最重要的组件之一。它旨在为当前任务和进程提供内存存储。如果使…...
2024/4/27 13:39:29 - 积分定价需要考虑的四个问题
积分体系是现在商家非常重视的一种私域流量池运营方法,它的主要作用就是帮助商家实现用户的增长和收益的提升,而想要做到这个目的,那么商家需要做到的前提就是对用户进行引导,而能够引导用户的就是积分,因此对于商家来…...
2024/4/27 17:02:45 - java中的Map集合
java中的Map集合 除了我们之前所学习的Collection集合之外,还有Map集合,它是一个接口,Map集合是用键(key)存储元素的容器,键是不能重复的,如果重复就会被替换掉,但是值(value)可以重复,每个键都…...
2024/4/27 16:54:20 - 3年Java开发经验复习两月备战字节跳动,最终成功杀入抖音事业部
近两年,字节跳动的发展越来越快,导致想要进入字节跳动的应届生越来越多,竞争越来越大,所以字节跳动的面试也越来越难。对于普通本科出身的我,不得不说是一项挑战,而这项挑战能否成功的关键,就在…...
2024/4/17 5:56:58 - Python 一行代码的特别之处
你们知道今天聊聊关于 Python 一行代码的神奇之处!!! 十六进制转十进制 decimal int(‘1010’, 5) print(decimal) #130 输出: 130 转换大小写字母 转换大写字母 转换大小写字母 str “hi Python”.upper() print(str) #H…...
2024/4/27 16:07:37 - 谷歌浏览器桌面快捷方式和任务栏都被hao123劫持
在谷歌浏览器中输入chrome://version 找到命令行 将命令行的内容复制到快捷方式的属性-目标中 桌面快捷方式和任务栏都要修改!! 如果任务栏中不能修改,将属性-常规-属性中的只读关闭就可以修改了...
2024/4/27 17:04:41 - 渗透测试三
先使用easyfilesharing创建一个靶机并开放80端口 再使用kalinux中的nmap -sV命令扫描靶机端口开放情况 扫描结果显示靶机的80和3389端口是开放的 ,我们可以使用kalilinux自带的漏洞库查找需要使用的渗透模块,执行searchsploit命令 我们可以使用Easy File…...
2024/4/27 17:29:58 - vue -V 报错npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
场景:vue项目可以正常运行,node版本也正常,但vue -V就会报错“vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称” 问题:系统环境变量存在问题,现阶段电脑上node是通过nvm装了两个版本…...
2024/4/27 16:00:18 - mysql数据库定时备份
脚本内容 #!/bin/bash #存放备份文件的路径 data_dir"/data/mysql/mysql_backup/" #备份日志 logs_dir"/data/mysql/mysql_backup/logs" #判断备份路径文件是否存在 if [ ! -d ${data_dir} ];thenmkdir -p ${data_dir} elseecho dir exist fi if [ ! -d …...
2024/4/27 16:00:20 - 江森自控先讯美资解决方案调研揭示,大型促销活动仍是中国消费者购物的重要推动因素
• 超过二分之一的中国消费者 (52%) 倾向在大型促销活动中购物 • “双十一”仍是最受中国消费者欢迎的促销活动,72% 的消费者计划在当天购物 • 近二分之一的中国消费者 (49%) 认为网购永远无法取代实体店购物体验 [中国,上海] 2021 年 11 月 2 日——…...
2024/4/27 18:37:43 - Java描述 LeetCode,714. Best Time to Buy and Sell Stock with Transaction Fee
大家好,我是河海哥,专注于后端,如果可以的话,想做一名code designer而不是普通的coder,一起见证河海哥的成长,您的评论与赞是我的最大动力。 1-1:题目 You are given an array prices where pr…...
2024/4/27 18:31:38 - 自学C语言-感想-20211102
看了下面这篇新手介绍↓ 我是如何自学C语言的(一个菜鸟的学习路)_cbirdflys Blog-CSDN博客_自学c语言https://cbirdfly.blog.csdn.net/article/details/79283512?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2~def…...
2024/4/27 14:26:59 - 安装Ceph集群(二)
注 意: 版本更新非常快,有问题要看官方文档 官方文档: http://docs.ceph.com 准备环境系统版本:centos7.4 x86_64 server硬件配置:5台vm,1核1G内存,每台node角色的机器至少挂载1块不低于5个G的空闲盘为osd…...
2024/4/27 17:21:46 - Unicode 和 UTF-8 有什么区别
原文:https://www.zhihu.com/question/23374078/answer/69732605 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“…...
2024/4/27 16:27:09 - CAN总线学习笔记(5)- CAN通信的位定时与同步
原文链接:https://blog.csdn.net/weixin_40528417/article/details/79936476 依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油! 1 位定…...
2024/4/15 9:58:04 - Explain 工具
一、Explain 工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注…...
2024/4/15 9:57:49 - STM32按键功能复用
为了节约资源往往需要一个按键实现多个功能,这里分别对单击、双击、长按进行响应编程。 思路如下: 1.检测输入是否为1,若为1,每隔50ms采集一次输入信号,若5次都为1,则结束判断, 设置FL…...
2024/4/15 9:57:39 - gpg: verify signatures failed: 文件打开错误
具体错误 $ gpg --verify grub-2.06.tar.gz.sig grub-2.06.tar.gz gpg: 无法打开‘grub-2.06.tar.gz.sig’ gpg: verify signatures failed: 文件打开错误解决办法 简单,因为文件名搞错了。比如说正确的是: $ gpg --verify grub-2.06.tar.xz.sig grub-2…...
2024/4/15 9:57:44 - 【区块链开发】EXchange开发 NFT开发
案例背景 1.交易所系统 利用高效匹配算法,解决区块链场景交易难题,提升货币流通价 2.场外交易系统 OTC场外交易没有集中、统一交易机制和合制度,是交易平台不涉资金的模式。 3.合约交易系统 使用差价交割的模式,胪可以通过判断涨跌,进行买交易获取收益。 案例详情 采用了分布…...
2024/4/15 9:57:39 - Android RecycleView切换条目布局visibility导致列表滑动
在项目开发过程遇到一个问题,切换布局中某个子view的visibility为gone后,RecyclerView 自己莫名其妙的滚动了一点。通过网上查找发现,这是RecyclerView 抢占焦点导致。可以用以下方式解决: 父布局设置属性descendantFocusability …...
2024/4/15 9:57:39
最新文章
- matplotlib 安装失败:Failed building wheel for matplotlib 解决方案
Python | Failed building wheel for matplotlib 朋友遇到 python 安装 matplotlib 时的问题,笔者帮忙远程调试(踩了不少坑)。网上的解决方案有很多无效,以此来记录以下个人解决方案。 在使用指令 pip install matplotlib出现如下报错: “…...
2024/4/27 19:55:58 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 同一个pdf在windows和linux中的页数不一样
之前认为PDF的格式,至少页数是不会变化的,结果最近发现一个文档在windows和linux中的页数不一样,linux中的pdf进入像word一样排版变得紧凑了,原本在下一页的几行进入了上一页的末尾。问了gpt后得到这样的回答: PDF文档…...
2024/4/21 6:41:42 - 磁盘管理与文件管理
文章目录 一、磁盘结构二、MBR与磁盘分区分区的优势与缺点分区的方式文件系统分区工具挂载与解挂载 一、磁盘结构 1.硬盘结构 硬盘分类: 1.机械硬盘:靠磁头转动找数据 慢 便宜 2.固态硬盘:靠芯片去找数据 快 贵 硬盘的数据结构:…...
2024/4/23 6:16:19 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/26 21:56:58 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/25 18:39:16 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/26 22:01:59 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/25 2:10:52 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57