Go语言入门心法(一): 基础语法


Go语言入门心法(一)

Go语言入门心法(二): 结构体

Go语言入门心法(三): 接口

Go语言入门心法(四): 异常体系

 Go语言入门心法(五): 函数

 





一: go语言中变量认知 


go语言中变量的定义:  (要想飞|先会走)||(翻身仗|抹遗憾 )   |(二八定律)(先量变)|(再质变)||(冰冻三尺非一日寒)|(扶贫之旅|继续裸奔)        (1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge  := 30sex := 1marry := false )

附录实例一:


package mainimport ("fmt""reflect"
)/*
go语言中变量的定义域:(1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge  := 30sex := 1marry := false)
*/
func main() {a := 1b := "test"c := truefmt.Println("a变量类型: ", reflect.TypeOf(a))fmt.Println("b变量类型: ", reflect.TypeOf(b))fmt.Println("c变量类型: ", reflect.TypeOf(c))fmt.Println("=========================变量类型转换===============================")var d int16 = 97fmt.Println("变量a的值为: ", d, " ,变量的类型为: ", reflect.TypeOf(d))e := int32(d)fmt.Println("变量e的值为: ", e, " ,变量的类型为: ", reflect.TypeOf(e))fmt.Println("变量e的类型为字符串: ", string(e))fmt.Println("变量e的类型为字符串string : ", reflect.TypeOf(string(e)))desc := `再进行变量类型转换中需要特别注意转换后的数值是否发生变化`fmt.Println("注意事项: ", desc)var as int32 = 1234567891fmt.Println("变量as的值:", as, " ,变量类型: ", reflect.TypeOf(as))fmt.Println("转换as的类型为int16,变量as的值为: ", int16(as), " ,变量as类型: ", reflect.TypeOf(int16(as)))
}

实例运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe D:\program_file\go_workspace\org.jd.data\VariableParameterDifinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe
a变量类型:  int
b变量类型:  string
c变量类型:  bool
=========================变量类型转换===============================
变量a的值为:  97  ,变量的类型为:  int16
变量e的值为:  97  ,变量的类型为:  int32
变量e的类型为字符串:  a
变量e的类型为字符串string :  string
注意事项:  再进行变量类型转换中
             需要特别注意转换后的数值是否发生变化

变量as的值: 1234567891  ,变量类型:  int32
转换as的类型为int16,变量as的值为:  723  ,变量as类型:  int16

Process finished with the exit code 0
 


附录实例二:


package mainimport ("fmt""reflect"
)/*
变量交换值,使用变量简短什么方式来声明及赋值
*/
func main() {var name stringvar age intvar salary float32fmt.Println("变量a与b交换值:")a := 1b := 3a, b = b, afmt.Println("a:", a)fmt.Println("b:", b)println("name变量的默认初始值: ", name)println("age变量的初始值: ", age)println("salary的默认初始值: ", salary)/*go语言中变量的定义与java中定义的变量类型,都需要先声明后使用的(1)申明变量的语法:var 变量名  类型这样声明的变量,没有赋予初始值时,go会自动赋予该类型变量的默认初始值字符串默认初始值为空串(2)定义变量的同时赋予初始值: 标准的声明变量赋值var typeNum int = 0(3)同时声明多个变量时,没有赋予初始值,则变量类型必须保留var (a stringb intc stringd float)(4) 编译器推导类型格式var num  = 20*/var college stringprintln("变量college= ", college)var typeNum int64println("变量type= ", typeNum)/*(1)go语言可以批量声明变量,声明变量的同时可以赋予初始值(2)go语言中变量声明后必须使用,但是常量声明后,不一定使用*/var (// 赋值的变量,可以省略类型,go编译器会自动进行类型推断;为简介,通常附初始值的变量可以省略变量类型tName string = "张三"tAge  int    = 28tSex  bool)var numCount = 20println("numCount type is ", reflect.TypeOf(numCount))println("numCount = ", numCount)str := "这是第一个go语言程序"println("str=", str)strNum := `通过反引号可以定义字符串多行字符串定义`println("多行字符串定义: strNum = ", strNum)desc := `(1) 在go语言中有两种类型uint8:代表了 ASCII码的一个字符串rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本质就是int32类型)`println(desc)english := 'a'chinese := '我'fmt.Println(english)fmt.Println(chinese)println("名称: ", tName, " ,年龄: ", tAge, " ,性别(true-男;false-女): ", tSex)}


运行效果:


OOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe D:\program_file\go_workspace\org.jd.data\ChangeParamaValue.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe
变量a与b交换值:
a: 3
b: 1
name变量的默认初始值:
age变量的初始值:  0
salary的默认初始值:  +0.000000e+000
变量college=
变量type=  0
numCount type is  (0xed14a0,0xe9c920)
numCount =  20
str= 这是第一个go语言程序
多行字符串定义: strNum =
             通过反引号可以定义字符串
             多行字符串定义


            (1) 在go语言中有两种类型
             uint8:代表了 ASCII码的一个字符串
             rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本
质就是int32类型)

97
25105
名称:  张三  ,年龄:  28  ,性别(true-男;false-女):  false

Process finished with the exit code 0
 


二: go语言常量认知


go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员

package mainimport ("fmt"
)/*go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员
*/func main() {fmt.Println("---------------循序渐进代码实操演示学习go编程语言--------------")fmt.Println("-------------------------go语言中定义常量------------------------------")const PersonName string = "GO语言实战系列"println("第一个常量: ", PersonName)const aa = 20const bb int16 = 50println("常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型")println("常量[a] = ", aa)println("常量[b]= ", bb)println("常量与变量都可以批量定义:")const (personName    string = "小张"personAge     int16  = 30personAddress        = "北京市海淀区马连洼街道120路105号")println("使用批量定义的常量:")println("名称: ", personName, " ,年龄: ", personAge, " ,上班等死地址: ", personAddress)/*go语言现阶段还没有枚举,但是可以通过使用一种特殊的常量“iota”类模拟枚举iota在const关键字出现时被重置为0,const中的每新增一行常量申明,将使iota进行一次计数,可以简单第将iota理解为const语句块中的行索引*/const (a = iotabc = "你好呀,欢迎来到特工世界"de = iota)println("a:", a)println("b:", b)println("c:", c)println("d:", d)println("e:", e)}

实例运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe D:\program_file\go_workspace\org.jd.data\ConstParameterDefinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe
---------------循序渐进代码实操演示学习go编程语言--------------
-------------------------go语言中定义常量------------------------------
第一个常量:  GO语言实战系列
常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型
常量[a] =  20
常量[b]=  50
常量与变量都可以批量定义:
使用批量定义的常量:
名称:  小张  ,年龄:  30  ,上班等死地址:  北京市海淀区马连洼街道120路105号
a: 0
b: 1
c: 你好呀,欢迎来到特工世界
d: 你好呀,欢迎来到特工世界
e: 4

Process finished with the exit code 0


三: go中各种运算符认知


package mainimport "fmt"func main() {/*go语言中的各种表达式:(1)赋值表达式 = , +=,-+(2)条件表达式  if 条件判断(3)逻辑表达式  && || !(4)算术表达式  + , - , * ,/(5)位运算符*/fmt.Println("go语言中的各种表达式")a := 1b := 2println("算术运算符: ")println("a+b = ", a+b)println("a-b = ", a-b)println("a*b = ", a*b)println("求商(a/b) = ", a/b)println("求余数(a%b) = ", a%b)println()println("比较运算符:")println("a==b:", a == b)println("a>=b:", a >= b)println("a<=b:", a <= b)println("a<b:", a < b)println("a>b:", a > b)println("a!=b:", a != b)println()println("赋值运算符: ")var d = 10fmt.Println("变量d = ", d)d += 2fmt.Println("d+=2: ", d)d -= 2fmt.Println("d-=2: ", d)d *= 2fmt.Println("d*=2: ", d)d /= 2fmt.Println("d/=2: ", d)d %= 2fmt.Println("d%=2: ", d)println()println("位运算符: ")c := 9e := 13fmt.Println("e&c = ", e&c)fmt.Println("e|c = ", e|c)fmt.Println("e^c = ", e^c)fmt.Println("e<<c = ", e<<c)fmt.Println("e>>c = ", e>>c)println()println("逻辑运算符: ")f := trueg := falsefmt.Println("f&g  = ", f && g)fmt.Println("f||g  = ", f || g)fmt.Println("!f = ", !f)}

运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ExpressionToGoGrammar_go.exe D:\program_file\go_workspace\org.jd.data\ExpressionToGoGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ExpressionToGoGrammar_go.exe
go语言中的各种表达式
算术运算符:
a+b =  3
a-b =  -1
a*b =  2
求商(a/b) =  0
求余数(a%b) =  1

比较运算符:
a==b: false
a>=b: false
a<=b: true
a<b: true
a>b: false
a!=b: true

赋值运算符:
变量d =  10
d+=2:  12
d-=2:  10
d*=2:  20
d/=2:  10
d%=2:  0
位运算符:
e&c =  9
e|c =  13
e^c =  4
e<<c =  6656
e>>c =  0

逻辑运算符:
f&g  =  false
f||g  =  true
!f =  false

Process finished with the exit code 0


四: 流程控制认知

package mainimport ("fmt""runtime"
)/*
go语言流程控制:go语言中,通过if 关键字构成的条件判断语句进行条件判断,格式如下:if 条件表达式 {分支一}else if 条件表达式2 {分支二}else {分支3}
*/
func main() {fmt.Println(`Go语言的编程者需要通过流程控制语句来控制程序的逻辑走向和执行顺序.流程控制语句主要包括: 条件判断语句(if和switch),循环控制语句(for,break,continue和跳转语句goto)`)a := 101if a > 100 {fmt.Println(a, " > 100")} else if a == 100 {fmt.Println(a, " = 100")} else {fmt.Println(a, " < 100")}println(`if还有一种比较常见的写法,就是在if表达式前添加一个语句,使用变量接收语句返回的值,通过对该变量的判断在选择执行的分支;这一点更python的  if条件判断类似,而java需要另外一个变量来接收`)if num := runtime.NumCPU(); num >= 1 {println("程序使用的CPU核数为:", num)}println()println(`Go语言中的循环逻辑通过for关键字实现;不同于其他编程语言,Go语言没有while关键字,不存在while循环for循环格式如下:for 初始语句;条件表达式;赋值表达式 {循环体}`)println()for i := 1; i < 10; i++ {fmt.Println("循环的次数:", i)}println(`break跳出循环:break语言用来跳出for循环,而且可以在语句后面添加标签;表示退出标签对应的代码块逻辑;注意: break语句如果不带标签,则默认跳出最内层的for循环`)i := 1for {for {if i > 5 {println("跳出内层for循环")break}fmt.Println("循环次数: ", i)i++}fmt.Println("跳出外层for循环")break}println()fmt.Println(`使用带标签的break语句,直接跳出最外层的for循环:`)t := 1
OuterLoop:for {for {if t > 5 {println("break标签跳出最内层循环.....")break OuterLoop // 跳出OuterLoop标签对应的循环体}fmt.Println("循环次数: ", t)t++}}println()println(`continue继续循环:continue可以立即结束当前循环体中的逻辑,开始下一次循环;与break语句类似,continue语句之后也可跟标签,表示循环开始标签所对应的循环`)
OuterLoopContinue:for i := 0; i < 5; i++ {for j := 0; j < 6; j++ {if j == 1 {fmt.Println(i, j)continue OuterLoopContinue}}}
}

运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToGrammar_go.exe D:\program_file\go_workspace\org.jd.data\ControlFlowToGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToGrammar_go.exe
Go语言的编程者需要通过流程控制语句来控制程序的逻辑走向和执行顺序.
                     流程控制语句主要包括: 条件判断语句(if和switch),
                     循环控制语句(for,break,continue和跳转语句goto)

101  > 100

              if还有一种比较常见的写法,就是在if表达式前添加一个语句,使用变量接收语句返回的值,通过对该变量的判断在
               选择执行的分支;这一点更python的  if条件判断类似,而java需要另外一
个变量来接收

程序使用的CPU核数为: 20

        Go语言中的循环逻辑通过for关键字实现;不同于其他编程语言,Go语言没有while关键字,不存在while循环
        for循环格式如下:
           for 初始语句;条件表达式;赋值表达式 {
               循环体
           }

循环的次数: 1
循环的次数: 2
循环的次数: 3
循环的次数: 4
循环的次数: 5
循环的次数: 6
循环的次数: 7
循环的次数: 8
循环的次数: 9

        break跳出循环:
           break语言用来跳出for循环,而且可以在语句后面添加标签;表示退出标签对应
                                                                              应的代码块逻辑;
           注意: break语句如果不带标签,则默认跳出最内层的for循环

循环次数:  1
循环次数:  2
循环次数:  3
循环次数:  4
循环次数:  5
跳出内层for循环
跳出外层for循环


        使用带标签的break语句,直接跳出最外层的for循环:

循环次数:  1
循环次数:  2
循环次数:  3
循环次数:  4
循环次数:  5
break标签跳出最内层循环.....


       continue继续循环:
           continue可以立即结束当前循环体中的逻辑,开始下一次循环;
           与break语句类似,continue语句之后也可跟标签,表示循环开始标签所对应的循
                                                                              循环

0 1
1 1
2 1
3 1
4 1

Process finished with the exit code 0


五: swith语句匹配认知

go语言中switch匹配模式认知升维:(1)switch语句可以根据不同的条件匹配,来执行不同的case分支;从而简化了if ....elseif.....else.....多层嵌套(2)switch语句默认,没有匹配到任何条件时,默认执行default分支;switch语句的执行过程从上到下,直到找到匹配项,匹配项后面也不需要在加break;(3)每一个switch语句只能包含一个可选的default分支;(4)switch语法如下:switch express {case value1:分支代码块1case value2:分支代码块2default:默认值执行代码块}(5)默认情况下,switch匹配成功后就不会继续匹配其后面的case,如果我们需要无条件强制执行后面的case,可以使用fallthrough关键字

package mainimport "fmt"func main() {println("===============================================================================")println(`go语言中switch匹配模式认知升维:(1)switch语句可以根据不同的条件匹配,来执行不同的case分支;从而简化了if ....elseif.....else.....多层嵌套(2)switch语句默认,没有匹配到任何条件时,默认执行default分支;switch语句的执行过程从上到下,直到找到匹配项,匹配项后面也不需要在加break;(3)每一个switch语句只能包含一个可选的default分支;(4)switch语法如下:switch express {case value1:分支代码块1case value2:分支代码块2default:默认值执行代码块}(5)默认情况下,switch匹配成功后就不会继续匹配其后面的case,如果我们需要无条件强制执行后面的case,可以使用fallthrough关键字`)println("===============================================================================")println()switch 1 + 1 {case 1:fmt.Println("匹配到该条件:", "1+1=1")case 2:fmt.Println("匹配到该条件:", "1+1=2")fallthroughcase 3:fmt.Println("匹配到该条件:", "1+1=3")fallthroughcase 4:fmt.Println("匹配到该条件:", "1+1=4")default:fmt.Println("匹配到该条件:", "1+1不等于1或者2,3,4")}println("=========================演示使用fallthrough关键字,无条件执行后面的case语句===========================")println("省略了switch关键字后面的表达式时,默认为布尔值true")println()switch { // 省略了表达式,只能匹配false与true,default者三种情况// false肯定不会执行case false:fmt.Println("case 1为false")// true肯定会执行case true:fmt.Println("case 2为false")fallthrough// 由于fallthrough关键字,索引default一定会被执行default:fmt.Println("默认执行case语句代码块.......")}}

 运行效果:


gram_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToSwitchGrammar_go.exe D:\program_file\go_workspace\org.jd.data\ControlFlowToSwitchGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToSwitchGrammar_go.exe
===============================================================================


                go语言中switch匹配模式认知升维:

                                (1)switch语句可以根据不同的条件匹配,来执行不同的case分支;从而简化了if ....elseif.....else.....多层嵌套

                            (2)switch语句默认,没有匹配到任何条件时,默认执行default分支;switch语句的执行过程从上到下,直到找到匹配项,匹配项后面也不需要在加break;

                            (3)每一个switch语句只能包含一个可选的default分支;
                        (4)switch语法如下:
                              switch express {
                                  case value1:
                                        分支代码块1
                                  case value2:
                                        分支代码块2
                                  default:
                                         默认值执行代码块

                              }
                    (5)默认情况下,switch匹配成功后就不会继续匹配其后面的case,如
果我们需要无条件强制执行后面的case,可以使用fallthrough关键字

===============================================================================

匹配到该条件: 1+1=2
匹配到该条件: 1+1=3
匹配到该条件: 1+1=4
=========================演示使用fallthrough关键字,无条件执行后面的case语句=====
                                                                               =======================
省略了switch关键字后面的表达式时,默认为布尔值true

case 2为false
默认执行case语句代码块.......

Process finished with the exit code 0
 

六: goto跳转认知

goto语言用于代码间的无条件跳转,格式如下:goto 标签
一般情况下,在程序中不建议使用goto语句,过多的goto语句会破坏程序结构,使程序可读性变差..............

package mainimport ("fmt"
)func main() {println(`goto语言用于代码间的无条件跳转,格式如下:goto 标签一般情况下,在程序中不建议使用goto语句,过多的goto语句会破坏程序结构,使程序可读性变差..............`)fmt.Println("=========================goto 标签 无条件跳转===========================")goto signfmt.Println("无效代码,不会被执行....")
sign:fmt.Println("跳过sign标签之间的代码,弯道超车 .................")goto startprintln("goto start标签会执行吗")
start:println("=================跳过了start标签了吗=======================")
}

  运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToGotoGrammar_go.exe D:\program_file\go_workspace\org.jd.data\ControlFlowToGotoGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ControlFlowToGotoGrammar_go.exe


        goto语言用于代码间的无条件跳转,格式如下:
          goto 标签
        一般情况下,在程序中不建议使用goto语句,过多的goto语句会破坏程序结构,使程
序可读性变差..............

=========================goto 标签 无条件跳转===========================
跳过sign标签之间的代码,弯道超车 .................
=================跳过了start标签了吗=======================

Process finished with the exit code 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/159693.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于IDEA集成环境---Nacos安装

Nacos服务器是独立安装部署的&#xff0c;因此我们需要下载最新的Nacos服务端程序&#xff0c;下载地址&#xff1a;https://github.com/alibaba/nacos。 将文件进行解压&#xff0c;得到以下内容&#xff1a; 直接将其拖入到项目文件夹下&#xff0c;便于我们一会在IDEA内部…

mysql case when 不命中缓存

case when 在sql 中非常方便数据不同维度统计&#xff0c;但是也会出现mysql 索引不命中问题&#xff0c;当多个case 出现时&#xff0c;需要提取出来到where里面优化 优化后 SELECT date(RecordTime) AS date, count( DISTINCT CASE WHEN Param 1 …

什么是美体SDK?美摄美颜美体SDK对接开发指南

在当今的数字世界中&#xff0c;人们对自我表达和形象展示的需求越来越高。美体SDK应运而生&#xff0c;为用户提供了一种全新的美颜美体体验&#xff0c;让每一个人都能享受到个性化的美丽与自信。 一、美体SDK的特点 轻量级&#xff1a;美体SDK体积小巧&#xff0c;不会对用…

运用精益管理思想提升MES管理系统建设水平

随着制造业的不断发展&#xff0c;MES生产管理系统已经成为了企业生产过程中不可或缺的一部分。而在MES管理系统建设过程中&#xff0c;精益管理的思想也越来越受到重视。本文将探讨如何运用精益管理的思想&#xff0c;提高MES系统的建设水平&#xff0c;以更好地服务于企业的生…

Sanic​——Python函数变成API的神器

今天给大家介绍一个超好用的框架&#xff0c;迅速将Python函数变成API&#xff0c;它就是最近越来越火的异步Web框架Sanic。 1. Sanic简介 Sanic 是 Python3.7 Web 服务器和 Web 框架&#xff0c;旨在提高性能。它允许使用 Python3.5 中添加的async/await语法&#xff0c;这使…

1.Vue-在独立页面实现Vue的增删改查

题记 在独立页面实现Vue的增删改查&#xff0c;以下是具体的代码&#xff0c;和操作流程。 编写index.html页面 index.html文件如下&#xff1a; <!DOCTYPE html> <html> <head><title>Vue CRUD Example</title><!--在线导入vue文件-->&l…

Linux系统之ip命令的基本使用

Linux系统之ip命令的基本使用 一、ip命令介绍1.1 ip命令简介1.2 ip命令的由来1.3 ip命令的安装包 二、ip命令使用帮助2.1 ip命令的help帮助信息2.2 ip命令使用帮助 三、查看网络信息3.1 显示当前网络接口信息3.2 显示网络设备运行状态3.3 显示详细设备信息3.4 查看路由表3.5 查…

canvas画一个笑脸和画一个三角形

画一个笑脸主要用到的是画弧形的方法&#xff1a;arc&#xff0c;有五个参数&#xff1a;起始坐标&#xff0c;半径&#xff0c;弧形起始坐标&#xff0c;还有一个参数是顺时针还是逆时针。画的笑脸&#xff1a;虽然丑了点&#xff0c;但是学习了 代码&#xff1a; <!DOCTY…

【Docker 内核详解】namespace 资源隔离(四):Mount namespace Network namespace

【Docker 内核详解 - namespace 资源隔离】系列包含&#xff1a; namespace 资源隔离&#xff08;一&#xff09;&#xff1a;进行 namespace API 操作的 4 种方式namespace 资源隔离&#xff08;二&#xff09;&#xff1a;UTS namespace & IPC namespacenamespace 资源隔…

[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation

3D生成蓬勃发展&#xff0c;主流方法通过事例比较和用户调查来评价方法好坏&#xff0c;缺少客观比较指标&#xff1b;本文提出Bench&#xff0c;首次综合比较了不同生成方法&#xff1b;具体来说&#xff0c;本文设计了质量评估&#xff08;Quality Assessment&#xff09;和对…

MyBatisPlus的学习项目页面

MyBatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库表信息 类名驼峰转下划线作为表名 名为id的字段作为主键 变量名驼峰转下划线作为表的字段名 常见注解 TableName&#xff1a;用来指定表名 Tableld&#xff1a;用来指定表中的主键字段信息 Tabl…

攻防世界题目练习——Web引导模式(三)(持续更新)

题目目录 1. mfw2.3.4.5. 1. mfw 进去看到网页和页面内容如下&#xff1a; 看到url的参数 ?pageabout &#xff0c;我以为是文件包含什么的&#xff0c;反复试了几次&#xff0c;想用 …/…/…/…/etc/passwd &#xff0c;但是发现.似乎被过滤了&#xff0c;实在不知道怎么做…

SpringCloud学习笔记-Nacos服务分级存储模型

Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice二级是集群&#xff0c;例如杭州或上海三级是实例&#xff0c;例如杭州机房的某台部署了userservice的服务器 微服务互相访问时&#xff0c;应该尽可能访问同集群实例&#xff0c;因为本地访问速度更快。当本集…

Pygame中将鼠标形状设置为图片2-1

在Pygame中利用Sprite类的派生类将鼠标形状设置为图片&#xff0c;其原理就是将Sprite类的派生类对应图片的位置设置为鼠标的当前位置即可。其效果如图1所示。 图1 将鼠标设置为图片 从图1可以看出&#xff0c;鼠标的形状变为红色的&#xff0c;该红色的随着鼠标的移动而移动&…

前后端数据导入导出Excel

一&#xff1a;导入 Excel有读取也便有写出&#xff0c;Hutool针对将数据写出到Excel做了封装。 原理 Hutool将Excel写出封装为ExcelWriter&#xff0c;原理为包装了Workbook对象&#xff0c;每次调用merge&#xff08;合并单元格&#xff09;或者write&#xff08;写出数据&…

激发创意,打造震撼视觉效果——Adobe After Effects 2024(Ae2024)全新来袭!

想要创造独特的、令人惊叹的视觉效果吗&#xff1f;不要犹豫&#xff0c;现在就升级到全新的Adobe After Effects 2024&#xff08;Ae2024&#xff09;&#xff01;作为业界领先的动态图形和视觉效果软件&#xff0c;Ae2024将为您的创作带来前所未有的火花。 Ae2024拥有强大的…

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-ChatGLM2部署UbuntuCuda11显存24G实战方案 自从chatGPT掀起的AI大模型热潮以来&#xff0c;国内大模型研究和开源活动&#xff0c;进展也如火如荼。模型越来越大&#xff0c;如何在小显存部署和使用大模型&#xff1f; 本实战专栏将评估一系列的开源模型&#xf…

处理ElementUI组件默认样式多次重复问题

问题截图&#xff1a; 解决办法&#xff1a; 在postcss.config.js文件里添加配置项&#xff1a; module.exports {plugins: {autoprefixer: {},cssnano: {} //添加这行代码}, } 处理结果&#xff1a; github issues&#xff1a; https://github.com/ElemeFE/element/is…

【LeetCode高频SQL50题-基础版】打卡第6天:第31~35题

文章目录 【LeetCode高频SQL50题-基础版】打卡第6天&#xff1a;第31~35题⛅前言员工的直属部门&#x1f512;题目&#x1f511;题解 判断三角形&#x1f512;题目&#x1f511;题解 连续出现的数字&#x1f512;题目&#x1f511;题解 指定日期的产品价格&#x1f512;题目&am…

让ChatGPT等模型学会自主思考!开创性技术“自主认知”框架

ChatGPT、百度文心一言、Bard等大语言模型展现出了超强的创造能力&#xff0c;加速了生成式AI的应用进程。但AI模型只能基于训练数据执行各种任务&#xff0c;无法像人类一样利用生活知识、过往经验用于复杂的推理和决策。 例如&#xff0c;在玩游戏时&#xff0c;人类可以利用…