Go语言中文网 为您找到相关结果 33

golang判断文件或文件夹是否存在

golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断: 如果返回的错误为nil,说明文件或文件夹存在如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在如果返回的错误为其它类型,则不确定是否在存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err ...阅读全文

博文 2015-11-28 16:00:01 xielingyun

使用go语言复制文件

怎样使用go语言将文件复制成另一文件?go语言标准包io里提供一个简单的函数copy实现了这个功能,下面是一个例子。 //////////// package main import ( "fmt" "io" "os" ) func main() { CopyFile(os.Args[1], os.Args[2]) // os.Args[1]为目标文件,os.Args[2]为源文件 fmt.Println("复制完成",) } func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { return } defer src.Cl...阅读全文

博文 2014-10-24 12:00:01 学思

golang 图片处理,剪切,base64数据转换,文件存储

AUTH:PHILO VERSION:2 本文主要介绍: 图片文件的读写。 图片在go缓存中如何与base64互相转换 图片裁剪 本文中,为了方便查看,去掉所有错误判断 base64 -> file 12ddd, _ := base64.StdEncoding.DecodeString(datasource) //成图片文件并把文件写入到buffererr2 := ioutil.WriteFile("./output.jpg", ddd, 0666) //buffer输出到jpg文件中(不做处理,直接写到文件) datasource base64 string base64 -> buffer 12ddd, _ := base64.StdEncoding.DecodeString(datas...阅读全文

博文 2015-03-15 15:56:04 jianyingLi

golang 中的 type switch 类型判断

golang 语言中 也有 类是 javascript 的 typeof 判断类型的 方法 比如 func (a interface{}){ //第一种 if inst,ok:=a.(TypeA);ok{ inst.MethodA() } //第二种 switch inst:=a.(type){ case TypeA: inst.MethodA() default: fmt.Println("unknow") } } a可能是任意类型 a.(某个类型) 返回两个值 inst 和 ok ,ok代表是否是这个类型,Ok如果是 inst 就是转换后的 类型 a.(type) type是关键字 结合switch case使用 TypeA(a) 是强制转...阅读全文

博文 2014-10-04 19:26:55 健哥大人

golang 图片处理,剪切,base64数据转换,文件存储

本文主要介绍: 1. 图片文件的读写。 2. 图片在go缓存中如何与base64互相转换 3. 图片裁剪 本文中,为了方便查看,去掉所有错误判断 base64 -> file ddd, _ := base64.StdEncoding.DecodeString(datasource) //成图片文件并把文件写入到buffer err2 := ioutil.WriteFile("./output.jpg", ddd, 0666) //buffer输出到jpg文件中(不做处理,直接写到文件) datasource base64 string base64 -> buffer ddd, _ := base64.StdEncoding.DecodeString(datasource) //成图片文件并...阅读全文

博文 2016-06-15 09:00:00 satng

golang中的slice翻转存在以及map中的key判断

//slice翻转 func stringReverse(src []string){ if src == nil { panic(fmt.Errorf("the src can't be empty!")) } count := len(src) mid := count/2 for i := 0;i < mid; i++{ tmp := src[i] src[i] = src[count-1] src[count-1] = tmp count-- } } //判断是否包含 func sliceContains(src []string,value string)bool{ isContain := false for _,srcValue := range src { if(srcVal...阅读全文

博文 2016-04-10 11:00:12 pengyuan1990

Go 编程: 一分钟实现管道 pipe 功能

乘着打盹的时间看了一眼前两天写的日期转换的开源工具: ts。发现管道 pipeline 的功能点可以放大一下, 就此记录一下以备将来只需。 管道是什么 但凡在类 Unix 系统上敲过命令的人,大多使用过管道功能. 所谓管道,就是将A程序的标准输出作为B程序的标准输入。而在类 Unix 系统只需要使用 | 符号,连接 A 和 B 程序即可, 即 A | B。通过多次管道连接,就可以实现非常强大的功能。所以在类 Unix 系统上开发命令行程序有个著名的原则: KISS,即 Keep It Simple Stupid。 画了张简单的图: Go 程序 在 Go 程序中实现管道功能及其简单,直接上码: //先取程序的标准输入属性信息 info, err := os.Stdin.Stat() if er...阅读全文

gorm中的公共方法判断reflect.Value的值是否为空值

``` func isBlank(value reflect.Value) bool { switch value.Kind() { case reflect.String: return value.Len() == 0 case reflect.Bool: return !value.Bool() case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return value.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr...阅读全文

博文 2017-12-23 10:48:19 fightingforbing

如何判断图片空白的(纯白色)

想在项目中比较连个pdf的内容是否一致,反复选择后决定使用imagemagick的compare命令获得一个差异图片。根据compare原理空白时两个pdf的内容是一样的,否则反之。问题是如何判断获得的差异图片是纯白的(diff.jpg) 多谢启发! -quote- compare TEST1.pdf TEST2.pdf -compose src diff.jp...阅读全文

Golang判断类型示例

package mainimport "fmt"type Student struct { Name string}func TestType(items ...interface{}) { for k, v := range items { switch v.(type) { case string: fmt.Printf("type is string, %d[%v]\n", k, v) case bool: fmt.Printf("type is bool, %d[%v]\n", k, v) case int: fmt.Printf("type is int, %d[%v]\n", k, v) case float32, float64: fmt.Printf("type is flo...阅读全文

博文 2019-08-29 11:32:52 灰侠_bf44

golang windows 判断锁屏

golang windows 判断是否锁屏: package osapi import ( "syscall" "unsafe" "github.com/lxn/win" ) const ( DESKTOP_SWITCHDESKTOP = 0x0100 // The access to the desktop ) // get desktop locked status func ScreenIsLocked() bool { // load user32.dll only once user32 := win.MustLoadLibrary("user32.dll") openDesktop := win.MustGetProcAddress(user32, "OpenDesktopW")...阅读全文

博文 2016-02-28 03:00:03 yeshou

golang判断混合字符长度

blog.golang.org/strings1、const nihongo = "日本語" for index, runeValue := range nihongo { fmt.Printf("%#U starts at byte position %d\n", runeValue, index) }2、const nihongo = "日本語"for i, w := 0, 0; i < len(nihonggo); i+=w { runeValue, width := utf8.DecodeRuneInString(nihonggo[i:]) fmt.Printf("%#U starts at byte position %d\n", runeValue, i) w = width...阅读全文

博文 2017-07-01 20:00:01 leving

go nil转为interface{}后判断不可靠

判断一个值是否为nil,最好是直接跟nil进行比较判断,而不要通过interface{}的形参传给另一个函数来进行判断。 但是用反射可以通过interface{}来判断nil,如testnil5。 看如下示例代码,a是一空指针,但只有testnil4和testnil5能正确判断出来: type State struct {} func testnil1(a, b interface {}) bool { return a == b } func testnil2(a *State, b interface{}) bool{ return a == b } func testnil3(a interface {}) bool { return a == nil } func testnil4(...阅读全文

博文 2016-02-01 13:00:00 logsharp

在golang api中设置访问静态文件

今天一个小哥哥碰到的问题,访问静态文件老是404,正常设置如下:package main import ( "net/http" "fmt" ) func main(){ http.HandleFunc("/", handler) http.Handle("/static/",http.StripPrefix("/static",http.FileServer(http.Dir("./static")))) http.ListenAndServe("localhost:8082", nil) } func handler(w http.ResponseWriter, r *http.Request) { fmt.Println("123") }按理说这样没有问题,我还试了几回,没问题,但是他...阅读全文

博文 2018-04-16 22:40:05 misasky

Golang判断闰年

package main import "fmt" var yeartime int64 func main(){ fmt.Println("请输入要判断的年份:") fmt.Scanln(&yeartime) fmt.Println("您输入的年份是:",yeartime) if ( yeartime % 4 == 0 && yeartime % 100 != 0 ) || yeartime % 400 ==0 { fmt.Printf("输入的年份是:%d 是闰年",yeartime) }else { fmt.Printf("输入的年份是:%d 不是闰年",yeartime) } ...阅读全文

博文 2019-02-26 15:35:51 tianya1993

判断一棵二叉树是否是平衡二叉树

所谓平衡二叉树,是指一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 3 / \ 9 20 / \ 15 7 返回真 1 / \ 2 2 / \ 3 3 / \ 4 4 返回假 递归算法(golang): /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func isBalanced(root *TreeNode) bool { if root == nil { return true } if isBalanced(root.Left) == false { re...阅读全文

博文 2018-12-20 16:34:48 波涛澎湃

关于nil != nil 的问题

在go中一个比较大的陷阱就是 nil != nil 这个问题了,那么这个问题到底怎么来的? 看如下的示例代码 ``` package main import ( "reflect" "log" ) func see(i interface{}) { t := reflect.TypeOf(i) log.Println("类型是:", t) v := reflect.ValueOf(i) log.Println("值是:", v) if i == nil { log.Println("判断是否Nil:", i == nil) return } log.Println("判断是否Nil:", i == nil) if t...阅读全文

Go语言面试题分享:(判断题13道)(5)

Go语言面试题分享:(判断题13道)数组是一个值类型( )参考答案:T2、使用map不需要引入任何库( )参考答案:T3、指针是基础类型()参考答案:F4、interface{}是可以指向任意对象的Any类型( )参考答案:T5、Golang不支持自动垃圾回收( )参考答案:F6、Golang支持反射,反射最常见的使用场景是做对象的序列化( )参考答案:T7、Golang可以复用C/C++的模块,这个功能叫Cgo( )参考答案:F8、通过成员变量或函数首字母的大小写来决定其作用域( )参考答案:T9、对于常量定义zero(const zero = 0.0),zero是浮点型常量( )参考答案:F10、对变量x的取反操作是~x( )参考答案:F11、golang支持goto语句( )参考答案:...阅读全文

博文 2019-11-27 14:21:20 zhouzhou2018

golang leetcode 1106 解析布尔表达式

根据题意我们可以知道,一个运算符一定会跟随一对括号,比如 !(t)。 所以我们可以直接判断expression[0],得到最外层的运算符,根据运算符处理内层的表达式。 如果不是运算符,肯定就是 't'或者 'f' 直接判断即可 如果是't',里面要么就是单一的字符,要么就是一个新的表达式。再调用parseBoolExpr解析并取反即可。 如果是 '&' 或者 '|', 需要对里面每个表达式分别求解。通过括号匹配,拿到第一个'('匹配的')'里面的表达式,再通过 parseBoolExpr 计算出值。 在计算 '&' 的时候,如果有一个值为false,可以提前结束计算。同理,在计算'|'时, 如果有一个值为true,也可以提前结束计算。 完整代码见下: func parseBoolExpr(e...阅读全文

博文 2019-07-03 13:32:41 Tibbersshao

Go语言面试题分享:(判断题13道)(6)

Go语言面试题分享:(判断题13道)1、在函数的多返回值中,如果有error或bool类型,则一般放在最后一个( )解答:T2、错误是业务过程的一部分,而异常不是( )解答:T3、函数执行时,如果由于panic导致了异常,则延迟函数不会执行( )解答:F4、同级文件的包名不允许有多个( )解答:T5、golang虽然没有显式的提供继承语法,但是通过匿名组合实现了继承( )解答:T6、使用for range迭代map时每次迭代的顺序可能不一样,因为map的迭代是随机的( )解答:T7、switch后面可以不跟表达式( )解答:T8、golang中没有构造函数的概念,对象的创建通常交由一个全局的创建函数来完成,以NewXXX来命名( )解答:T9、import后面的最后一个元素是包名( )解答:...阅读全文

博文 2019-11-28 18:29:15 zhouzhou2018

LeetCode-8-字符串转换整数 (atoi)

题目描述 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的...阅读全文

Golang map

开发十年,就只剩下这套Java开发体系了 >>> m1 := map[string]string{ "name":"falcon", "gender":"male", } if name, ok := m1["name"]; ok { //判断一个key是否存在,不存在时ok为false fmt.Println("key name exists ,value: " + name) } else { fmt.Println("key not exists") } delete(m1, "name") //删除一个元素 if name, ok := m1["name"]; ok { //判断一个key是否存在,不存在时ok为false fmt.Println("key name exists ,...阅读全文

博文 2018-09-23 01:33:06 FalconChen

golang反射

反射让我们能在运行期间弹指对象的类型信息和内存结构,甚至还能访问隐藏属性。 类型 获取对象类型 t.Name是真实类型 t.Kind是基础结构类型 package main import ( "fmt" "reflect" ) type B func(int) int func main() { var b B t := reflect.TypeOf(b) fmt.Println(t.Name(), t.Kind()) // B func } 构建对象 package main import ( "fmt" "reflect" ) func main() { a := reflect.ArrayOf(1, reflect.TypeOf(byte(0))) m := reflect.MapOf...阅读全文

Golang判断类型示例

package main import "fmt" type Student struct { Name string } func TestType(items ...interface{}) { for k, v := range items { switch v.(type) { case string: fmt.Printf("type is string, %d[%v]\n", k, v) case bool: fmt.Printf("type is bool, %d[%v]\n", k, v) case int: fmt.Printf("type is int, %d[%v]\n", k, v) case float32, float64: fmt.Printf("type is...阅读全文

博文 2020-01-04 19:32:51 灰侠_bf44