Skip to main content

moregeek program

go执行linux命令_zzxiaoma的博客-多极客编程

首先建立一个exec.Cmd类型的值,然后执行这个类型的Start方法就可以启动命令了,获取此命令的输出管道,这个管道类型是io.ReadCloser,通过管道获取输出内容。 package mainimport ( "bytes" "fmt" "io" "os/exec")func main() { cmd0 := exec.Command("echo", "-n", "my fir

Read More

cgo之#cgo_zzxiaoma的博客-多极客编程

在 import "C" 语句前的注释中可以通过 #cgo 语句设置编译阶段和链接阶段的相关参数。编译阶段的参数主要用于定义相关宏和指定头文件检索路径。链接阶段的参数主要是指定库文件检索路径和要链接的库文件。 // #cgo CFLAGS: -DPNG_DEBUG=1 -I./include// #cgo LDFLAGS: -L/usr/local/lib -lpng// #include &l

Read More

cgo之调用静态库_zzxiaoma的博客-多极客编程

如果CGO中引入的C/C++资源有代码而且代码规模也比较小,直接使用源码是最理想的方式,但很多时候我们并没有源代码,或者从C/C++源代码开始构建的过程异常复杂,这种时候使用C静态库也是一个不错的选择。静态库因为是静态链接,最终的目标程序并不会产生额外的运行时依赖,也不会出现动态库特有的跨运行时资源管理的错误。不过静态库对链接阶段会有一定要求:静态库一般包含了全部的代码,里面会有大量的符号,如果不

Read More

cgo之类型转换_zzxiaoma的博客-多极客编程

在Go语言中访问C语言的符号时,一般是通过虚拟的“C”包访问,比如C.int对应C语言的int类型。有些C语言的类型是由多个关键字组成,但通过虚拟的“C”包访问C语言类型时名称部分不能有空格字符,比如unsigned int不能直接通过C.unsigned int访问。因此CGO为C语言的基础数值类型都提供了相应转换规则,比如C.uint对应C语言的unsigned int。 package

Read More

第五章 golang标识符、关键字、命名规则_彭世瑜的博客-多极客编程

标识符 identifier 数字、字母、下划线(_) 只能是字符和下划线(_)开头 标识符区分大小写 eg: var name string var age int var _sys int 关键字25个 break default func interface select case defer go map struct chan else got

Read More

cgo之调用c函数_zzxiaoma的博客-多极客编程

在go语言中如何调用自己写的c函数? 1、首先我们先建立c语言的函数,建立文件out.c #include <stdio.h>void out(const char* s) { puts(s);}这个文件有一个out函数,就是输出传入的字符串。 2、建立go语言来调用out.c这个文件 package main//void out(const char* s);import

Read More

golang:第四章 golang 项目管理_彭世瑜的博客-多极客编程

go项目管理工具 version < golang1.11: gopath version >= golang1.11:gomod 第三方:govendor 编写go代码 # 初始化项目 go mod init <projectName> # eg: $ go mod init demo $ tree . ├── go.mod ├── main.go └── us

Read More

cgo之简介_zzxiaoma的博客-多极客编程

cgo可以认为是在go语言中调用c程序,或者在c程序中调用go程序。我们先看一个最简单例子 package mainimport "C"func main() { println("hello")}比普通的go程序多了一行import "C",但是我们发现虽然启动了cgo特性,但是实际上我们并没有使用它,并且还不会报错。但是编译的时候需要用到gcc编译器。 那如何在go文件中执行c的方法呢

Read More

go语言之nil_zzxiaoma的博客-多极客编程

在go语言中,nil是一个零值,如果我们在声明整数的时候没有为变量赋值,那么该整数的值默认是0,如果是一个指针没有明确的指向,它的值就是nil,除了指针,nil还标识切片、映射和接口的零值。 如果对一个指针进行解引用程序会崩溃 var abc *intfmt.Println(*abc)为了避免程序崩溃,需要通过对nil判断进行避免 if(abc != nil){ fmt.Println(

Read More

go语言之指针_zzxiaoma的博客-多极客编程

go的指针采用了c语言指针的语法,我们需要特别关注&和*,&表示地址操作符,可以得到指定变量的内存地址。 abc := 10fmt.Println(&abc)打印出来的是abc的地址,我们可以通过在变量前面加*对其进行解引用 fmt.Println(*abc)打印出来是10 指针类型可以跟其他普通类型一样,出现在所有需要用到类型的地方,如变量声明、函数形参、返回值类型、

Read More

go语言之一等函数_zzxiaoma的博客-多极客编程

可以将函数赋值给变量,可以将函数传递给函数,甚至可以编写创建并返回函数的函数。 func add() int { return 1 + 1}adds := addfmt.Println(adds())调用函数的时候需要用到圆括号,单这次的程序在赋值的时候并没有这样做,这里把add()赋给变量adds,通过adds()来调用函数。adds变量的类型是函数,具体来说就是一个不接收任何形参并且只

Read More

js:监听页面滚动scroll,实现阅读进度条_彭世瑜的博客-多极客编程

实现原理 // 距顶部 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; // 可视区高度 var clientHeight = document.documentElement.clientHeight || document.body.clientHeight; // 滚动条总高度

Read More

go语言之类型转换_zzxiaoma的博客-多极客编程

go语言的类型不能混合使用 fmt.Println("abc" + 1)会报字符串和整数不能这么操作 se := 12.0wu := 5fmt.Println(se * wu)(mismatched types float64 and int)一个是float一个是int不允许操作 例如上面,我们需要把wu这个变量类型转换为float64. fmt.Println(se * float64(

Read More

go语言之浮点数_zzxiaoma的博客-多极客编程

go语言拥有两种浮点类型,一种是float64,每个64位的浮点数需要占用8字节,另一种是float32,占用4字节。 var p = 3.54fmt.Printf("%T",p)输出float64,也就是默认浮点数是float64,如果想定义float32,需要明确指定。 如果不为float64赋值,默认就是0.0。 下面的浮点数的格式化输出,%4.2f中4代表总宽度,这里需要注意,点也算宽度

Read More

判断两个cidr是否有ip冲突_5201314的博客-多极客编程

1.校验网段是否合法1.1函数import ( "fmt" "net")func IsNetWorkOk(network string ) bool{ _, _, err := net.ParseCIDR(network) if err != nil { return false } return true}1.2分析第一步就是先split变成ip

Read More

2022最新版 redis大厂面试题总结(附答案)_10982108的博客-多极客编程

专注于PHP、MySQL、Linux和前端开发,感兴趣的感谢点个关注哟!!!​​文章已收录​​,主要包含的技术有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具资源等相关理论知识、面试题和实战内容。文章导语大家好,前段时间一直在忙找工作相关的事情。最近工作稳定了,于是把面试过程中遇到的Redis相关知识问题总结下来

Read More

go语言之整型_zzxiaoma的博客-多极客编程

go提供了10种类型用于表示整数,由于每种整数类型的取值福范围不同,所以应该根据场景所需的范围来决定使用何种整数类型。 还有2个是int和uint,这2个类型是根据计算机架构自动选择合适的位长。在32位机器上就是32位值,在64位机器上就是64位值。 可以使用Printf函数的&T来查看变量的类型 abc := 43223fmt.Printf("type %T for %v\n",abc

Read More

go语言之大数_zzxiaoma的博客-多极客编程

计算机编程经常需要权衡利弊,做相应的取舍,例如浮点数可以存储任意大小的数字,但是会不精确,整数虽然准确,但是取值范围受到限制。go中有个big包可以存储大数据,big.Int存储整数,big.Float存储浮点数,big.Rat存储分数。 创建big.Int使用NewInt函数 abc := big.NewInt(54232432)cde := big.NewInt(43222233)但是如果数

Read More

js:动态导入script脚本文件_彭世瑜的博客-多极客编程

实现原理 模仿百度统计的代码,将其封装成一个可重用的函数 <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?64ecd82404c51e03dc91cb9e8c

Read More

golang:gomail一个简单高效的电子邮件发送包_彭世瑜的博客-多极客编程

Gomail is a simple and efficient package to send emails. It is well tested and documented. 译文:Gomail是一个简单高效的电子邮件发送包。它经过了良好的测试和记录。 文档 https://github.com/go-gomail/gomail https://pkg.go.dev/gopkg.in/

Read More