首页
About Me
Search
1
linuxea:gitlab-ci之docker镜像质量品质报告
49,484 阅读
2
linuxea:如何复现查看docker run参数命令
23,649 阅读
3
Graylog收集文件日志实例
18,633 阅读
4
linuxea:jenkins+pipeline+gitlab+ansible快速安装配置(1)
18,423 阅读
5
git+jenkins发布和回滚示例
18,235 阅读
ops
Openppn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
vue
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
登录
Search
标签搜索
kubernetes
docker
zabbix
Golang
mariadb
持续集成工具
白话容器
elk
linux基础
nginx
dockerfile
Gitlab-ci/cd
最后的净土
基础命令
gitops
jenkins
docker-compose
Istio
haproxy
saltstack
marksugar
累计撰写
667
篇文章
累计收到
111
条评论
首页
栏目
ops
Openppn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
vue
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
页面
About Me
搜索到
54
篇与
的结果
2019-10-08
linuxea:go布尔类型(7)
布尔类型用于表示真假,类型名为bool,只有两个值,分别是true和false。0值默认是falsepackage main import "fmt" func main(){ var hhlo bool helo := true hell := false fmt.Println(hhlo,helo,hell) }运行[root@LinuxEA /opt/Golang]# go run bool.go false true falsetrue表示真,false表示假,零值为false,字面量也是true/false布尔操作逻辑运算逻辑运算有三个,与,或,非。与&&,或||,非!与:abool && bbool,当两个都为true的时候,结果为true。如果有一个结果为false就不是true.或:abool || bbool,只要有一个为true的时候,结果就为true。非:!true,取反。!true非true,也就是false;!false非false,也就是true;可以是字面量,也可以是变量。关系运算关系运算的结果也是true和false. (==,!=),等于和不等于。 helo := true hell := false fmt.Println(helo != hell) // true fmt.Println(helo == hell) // false
2019年10月08日
2,270 阅读
0 评论
0 点赞
2019-10-07
linuxea:go fmt简单用法和占位符使用(6)
fmt.Println("打印") 打印的同时还会进行换行,而fmt.Print("打印") 是不会换行的。另外fmt.Printf()可以打印变量的类型:a := "linuxea" fmt.Printf("%T,%s,%d\n",a,"linuxea",1)[root@LinuxEA /opt/Golang]# go run 05.go string,linuxea,1有时候会出现%!s之类的,就说明占位符不匹配。需要使用对应的类型普通占位符占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people) main.Human %% 字面上的百分号,并非值的占位符 Printf("%%") %布尔占位符占位符 说明 举例 输出 %t true 或 false。 Printf("%t", true) true整数占位符占位符 说明 举例 输出 %b 二进制表示 Printf("%b", 5) 101 %c 相应Unicode码点所表示的字符 Printf("%c", 0x4E2D) 中 %d 十进制表示 Printf("%d", 0x12) 18 %o 八进制表示 Printf("%d", 10) 12 %q 单引号围绕的字符字面值,由Go语法安全地转义 Printf("%q", 0x4E2D) '中' %x 十六进制表示,字母形式为小写 a-f Printf("%x", 13) d %X 十六进制表示,字母形式为大写 A-F Printf("%x", 13) D %U Unicode格式:U+1234,等同于 "U+%04X" Printf("%U", 0x4E2D) U+4E2D浮点数和复数的组成部分占位符 说明 举例 输出 %b 无小数部分的,指数为二的幂的科学计数法, 与 strconv.FormatFloat 的 'b' 转换格式一致。例如 -123456p-78 %e 科学计数法,例如 -1234.456e+78 Printf("%e", 10.2) 1.020000e+01 %E 科学计数法,例如 -1234.456E+78 Printf("%e", 10.2) 1.020000E+01 %f 有小数点而无指数,例如 123.456 Printf("%f", 10.2) 10.200000 %g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 Printf("%g", 10.20) 10.2 %G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出 Printf("%G", 10.20+2i) (10.2+2i)字符串与字节切片占位符 说明 举例 输出 %s 输出字符串表示(string类型或[]byte) Printf("%s", []byte("Go语言")) Go语言 %q 双引号围绕的字符串,由Go语法安全地转义 Printf("%q", "Go语言") "Go语言" %x 十六进制,小写字母,每字节两个字符 Printf("%x", "golang") 676f6c616e67 %X 十六进制,大写字母,每字节两个字符 Printf("%X", "golang") 676F6C616E67指针占位符 说明 举例 输出 %p 十六进制表示,前缀 0x Printf("%p", &people) 0x4f57f0其它标记占位符 说明 举例 输出 + 总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 Printf("%+q", "中文") "\u4e2d\u6587" - 在右侧而非左侧填充空格(左对齐该区域) # 备用格式:为八进制添加前导 0(%#o) Printf("%#U", '中') U+4E2D 为十六进制添加前导 0x(%#x)或 0X(%#X),为 %p(%#p)去掉前导 0x; 如果可能的话,%q(%#q)会打印原始 (即反引号围绕的)字符串; 如果是可打印字符,%U(%#U)会写出该字符的 Unicode 编码形式(如字符 x 会被打印成 U+0078 'x')。 ' ' (空格)为数值中省略的正负号留出空白(% d); 以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开 0 填充前导的0而非空格;对于数字,这会将填充移到正负号之后填充补充占位填充%5d,占位5位,%05d占位5位,缺省的用0填充 age = 17 fmt.Printf("%5d\n",age) // 17 fmt.Printf("%05d\n",age) //00017运行[root@LinuxEA /opt/Golang]# go run int.go 17 00017左对齐右对齐默认是右对齐,如果是%-5d,就变成了右对齐fmt.Printf("%-5d\n",age) fmt.Printf("%05d\n",age)运行[root@LinuxEA /opt/Golang]# go run int.go 17 00017
2019年10月07日
2,369 阅读
0 评论
0 点赞
2019-10-06
linuxea:go语言作用域(5)
作用于定义标识符可以使用的范围。在go中使用{}定义作用域的范围。在{}中可以嵌套语句块。但是,子语句快可以使用父语句块,父语句快不可以使用子语句块。如下所示就会报:undefined: inner.因为在{}外是不能调用{}内的inner := 2 outer := 1 { inner := 2 fmt.Println(outer) fmt.Println(inner) } fmt.Println(inner)子语句快可以使用父语句块outer := 1 { inner := 2 fmt.Println(outer) fmt.Println(inner) { inner2 := 3 fmt.Println(outer,inner,inner2) } } //fmt.Println(inner)运行[root@LinuxEA /opt/Golang]# go run 05.go 1 2 1 2 3假如在语句块中嵌套了很多层,那么调用的流程就是就近调用。outer := 1 { inner := 2 outer := 11 fmt.Println(outer) fmt.Println(inner) { inner2 := 3 fmt.Println(outer,inner,inner2) } } fmt.Println(outer) 运行[root@LinuxEA /opt/Golang]# go run 05.go 11 2 11 2 3 1
2019年10月06日
2,252 阅读
0 评论
0 点赞
2019-10-05
linuxea:go初识常量语法(4)
常量常量和变量不同,变量是可以赋值进行修改的,而常量是不能修改的。在使用中有一些值是我们不希望更改的,就可以声明成常量。通常,我们习惯与将常量写为大写。定义一个常量常量可以定义在函数体内和函数体外 const name string = "mark" fmt.Println(name)运行[root@LinuxEA /opt/Golang]# go run 04.go mark如果进行赋值修改就会报错# command-line-arguments ./04.go:6:7: cannot assign to name省略类型 const PP = 32132.21 fmt.Println(PP)运行[root@LinuxEA /opt/Golang]# go run 04.go 32132.21定义多个类型相同的常量 const P1,P2 int = 3,4 fmt.Println(P1,P2)运行[root@LinuxEA /opt/Golang]# go run 04.go 3 4定义多个类型不相同的常量 const ( P1 string = "mark" P2 int = 4 ) fmt.Println(P1,P2)运行[root@LinuxEA /opt/Golang]# go run 04.go mark 4定义多个常量省略类型 const ( P1 = "mark" P2 = 4 P3 = 32.1 ) fmt.Println(P1,P2,P3)运行[root@LinuxEA /opt/Golang]# go run 04.go mark 4 32.1赋值省略在go中,如果产量的第一个值和最后一个值都是一样的,就可以省略掉。如下:const ( P1 = 1 P2 P3 ) fmt.Println(P1,P2,P3) 运行[root@LinuxEA /opt/Golang]# go run 04.go 1 1 1还可以像这样const ( P1 = "mark" P2 P3 P100 = 3.5 P101 C11 = 123 C12 ) fmt.Println(P1,P2,P3,P100,P101,C11,C12)运行[root@LinuxEA /opt/Golang]# go run 04.go mark mark mark 3.5 3.5 123 123枚举这种方式可以应用在枚举上,const+iota枚举是以const()括号内部开始和结束的。不影响到括号外的操作。const ( B1 int = iota B2 B3 B4 ) fmt.Println(B1,B2,B3,B4)运行[root@LinuxEA /opt/Golang]# go run 04.go 0 1 2 3
2019年10月05日
2,168 阅读
0 评论
0 点赞
2019-10-04
linuxea:go变量语法声明(3)
3.变量语法声明声明语句用于定义程序的各种实体对象,如:var 声明变量sonst 声明常量func 声明函数typ 声明类型变量什么是变量?变量是值对一块存储空间的定义名称 ,通过名称对存储空间的内容进行访问或者修改。变量声明的常见语法:变量的声明必须满足标识语法:1,定义一个me的变量,并指定变量类型2,赋值me 值为linuxea.com需要满足标识符的命名规则。必须由非空的unicode字符串组成,数字,_不能是数字开头不能为go的关键字避免和go预定义的(25个)标识符冲突,如:true,false等建议使用驼峰式标识符区分大小写 var me string me = "linuxea.com"如下:[root@LinuxEA /opt/Golang]# cat 02.go package main import "fmt" func main(){ var me string me = "linuxea.com" fmt.Println(me) }!!! 警告注意:函数体内的变量必须使用,否则会报错 运行[root@LinuxEA /opt/Golang]# go run 02.go linuxea.com函数外变量现在我们在函数之外定义一个变量,使用等号=进行赋值!!! note如果定义的变量没有赋值,就会自动赋值一个零值 var version string = "www.linuxea.com"如下:package main import "fmt" var version string = "www.linuxea.com" func main(){ var me string me = "linuxea.com" fmt.Println(me) }函数外的变量没有使用是不会报错的。[root@LinuxEA /opt/Golang]# go run 02.go linuxea.com定义多个变量通常在定义变量的时候,使用var,每次定义一个。var name string var age string其实我们可以使用逗号将同一个类型的变量隔开进行定义var name,age string而对多个变量赋值的时候,也可以如此name,age = "mark","18"如下:package main import "fmt" var version string = "www.linuxea.com" func main(){ var me string me = "linuxea.com" fmt.Println(me) var name,age string name,age = "mark","18" fmt.Println(name,age) }运行:[root@LinuxEA /opt/Golang]# go run 02.go linuxea.com mark 18当然了,也可以把不同类型的变量在一起定义,使用括号即可不同类型的多个变量定义我们可以使用var括号进行定义,比如定义一个tel是int类型的,和一个desc是string类型的,如下: var ( tel int desc string )赋值 tel,desc = 10086,"联通" fmt.Println(tel,desc)运行[root@LinuxEA /opt/Golang]# go run 02.go linuxea.com mark 18 10086 联通当然了, 我们也可以在声明的时候进行赋值,如下: var ( tel int = 10086 desc string = "上海" ) fmt.Println(tel,desc)运行结果仍然不变[root@LinuxEA /opt/Golang]# go run 02.go linuxea.com mark 18 10086 上海简短声明然而,在定义变量的时候,可以不指定类型,go会根据赋值类型自动推导,但是必须赋值,如下:!!! note使用`:=`冒号等于做简短赋值,左边是变量名,右边是值 tel,desc := 10010,"上海市淞虹路"fmt.Println(tel,desc)运行[root@LinuxEA /opt/Golang]# go run 02.go 10010 上海市淞虹路var与简短声明的区别!!! note> 注意:这里使用了简短声明,没有使用var声明 。在函数体内可以使用简短声明。而在函数体外必须使用var 定义,如下,go会根据值类型进行自动推导类型 package main var tel,desc = 10010,"上海市淞虹路" func main(){} // 函数体或package main var ( tel int = 10086 desc string = "上海" ) func main(){} // 函数体重复赋值!!! note> !注意:变量只能声明一次,不能重复定义,但是可以重复赋值 tel := 10086 desc := "上海"重复赋值,重复赋值只需要等号即可 tel = 10010 desc = "北京"运行结果是最近的赋值结果[root@LinuxEA /opt/Golang]# go run 03.go 10010 北京值交换当一次定义了多个值的时候就可以进行交换,这个方式很简单,如下: tel,desc := "10010","上海" fmt.Println(tel,desc) tel,desc = desc,tel fmt.Println(tel,desc)package main import "fmt" var version string = "www.linuxea.com" func main(){ tel,desc := "10010","上海" fmt.Println(tel,desc) tel,desc = desc,tel fmt.Println(tel,desc) }运行[root@LinuxEA /opt/Golang]# go run 03.go 10010 上海 上海 10010!!! note> 注意:这里交换的值必须是同类型。
2019年10月04日
2,067 阅读
0 评论
0 点赞
2019-10-03
linuxea: go程序组成的基本单位(2)
这和其他的语言一般无二。标识符标识符是编程时候使用的名字,这个名字可以是变量,产量,函数,类型,接口,包,以及后续的结构体都是由名字组成最终访问的也是通过标识符名字访问的。通过标识符建立名称和使用的关系。在go语言中的标识符有非空的字母组成(unicode),数字,下划线(_)组成unicode意味着可以使用中文命名,但是并不建议这么做。不能使用GO的关键字go语言中有25个关键字不可以使用:声明:import,package实体声明和定义:chan,const,func,interface,map,struct,type,var流程控制: break,case,continue,default,defer,else,fallthrough,for,go,goto,if,range,return,select,switch避免使用GO预定义的标识符,这些标识符通常内置在go中,不可以使用。如下:内置产量: true,false,nil,iota内置类型: bool,byte,rune,int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr,float32,float64,complex64,complex128,string,error内置函数:make,len,cap,new,append,copy,close,delete,panic,recover,complex,real,imag空白标识符: _建议使用驼峰法myNameIs := 标识符区分大小写My my字面量当创建一个linuxea后定义一个字符串类型的变量去赋值,这时候linuxea就是字面量字面量是值的表示方法,常用与对变量/产量进行初始化。主要分为:表示基础数据类型值的字面量,如:0,1.1,true,3 + 4i,'a',"你好世界。"自定义复合数据类型字面量,如:type interval int用于表示符合数据类型值的复合字面量,用来构造:array,slice,map,struct的值,如:{1,2,3}操作符如下:算数运算符:+,-,*,/,%,++,-- (加,减,乘,除,余,自增,自减)关系运算符:>,>=,<,<=,==,!= (大于,大于等于,小于,小于等于,等于,不等于)逻辑运算符:&&,||,! (且,或,非)位运算符:&,|,^,<<,>>,&^ (与,或,取反,左移,右移,按位清除 )赋值运算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>= (符合赋值)其他运算符:&(),*(),.(),-(),...,<- (取地址,取引用,方法调用/属性获取,符号位取反,..., 管道读写)分隔符小括号(),中括号[],大括号(),分号;,逗号,
2019年10月03日
2,053 阅读
0 评论
0 点赞
2019-10-02
linuxea:初识golang(1)
在go语言中的代码文件中最上层会定义一个package声明开头,说明源文件所属的包而后使用Import导入依赖的包,其次为包级别的变量,产量,类型和函数的什么和赋值函数中可定义局部的变量和常量等。如下:package main import "fmt" func main(){ fmt.Println("hello world!") }package main 中的main是程序的入口。在后面的包管理中会有其他的方式表示1.helo worldrun通常我们可以使用go run go文件来运行一个go文件。如:[root@LinuxEA /opt/Golang]# go run 01.go [root@LinuxEA /opt/Golang]# go run 01.go hello worldwindowsE:\golang\project\src\Golang>go run main.go hello world!build我们可以使用build来编译[root@LinuxEA /opt/Golang]# go build 01.go 而后就会多出来一个main.exe 在这个案例中,运行main.exe和go run main.go一样windowsE:\golang\project\src\Golang>go build main.go E:\golang\project\src\Golang>main.exe hello world!linux[root@LinuxEA /opt/Golang]# ./01 hello world注释通常我们使用双斜线来注释一行代码,或者使用/*和*/来注释一大块的代码,如下:代码的注释也可以在代码的第一行// 我也是注释 package main import "fmt" func main(){ fmt.Println("hello world!") // 双斜杠可以注释一行 /* 多行注释 fmt.Println("hello world!") fmt.Println("hello world!") */ }go build 会省略注释的内容
2019年10月02日
2,589 阅读
0 评论
0 点赞
1
...
5
6
7
8