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

打印结果出现%!(EXTRA 是什么意思?

代码如下: ``` func main(){ fmt.Printf("hello world.你好,世界!") var v1, v2, v3 int var str1 string = "000" var str2 = "123" str3 := "321" fmt.Printf("hello world. 你好中国 %d %d %d\n", v1, v2, v3) fmt.Printf(str1, str2, str3) } ``` - 输出结果如下: hello world.你好,世界!hello world. 你好中国 0 0 0 000**%!(EXTRA **string=123, string=321) Process finish...阅读全文

Golang通过syscall调用win32的Api

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 Golang不是完全的跨平台, 并没有提供Windows下的相关方法,只能通过Syscall包去调用Win库。 开始 如果你不了解Windows下API调用,请观看MSDN文档,我知道有些人找不到,没关系: 1. 英文版: https://msdn.microsoft.com/en-us/library/windows/desktop/hh447209(v=vs.85) ...阅读全文

博文 2018-01-24 15:33:04 90design

golang 导入包

算是对go web编程中提到的一个路径的笔记: 1 相对路径 import ".model" //<--是与当前文件同一目录的model目录,但是不建议使用这种方式来导包 2 绝对路径 import "shortcut/model" //<--加载gopath/src/shortulr/model模块 点操作 我们有时候会看到如下的方式导入包 import(. " fmt") 这个点操作的含义就是这个包导入之后在你调用这个包的函数时, 你可以省略前缀的包名, 也就是前面你调用的fmt. Println("hello world") 可以省略的写成Println("hello world"),无闻的视频上建议不要使用这样的方式,可读性太差 别名操作 别名操作顾名思义我们可以把包命名成另一个我们...阅读全文

博文 2015-12-17 03:00:00 wtf0215-golang

为什么说go语言中的string是不可变的?

```go s := "foobar阿斯蒂芬" fmt.Println(s) fmt.Println(&s) s = "qweqweqweqweqwe" fmt.Println(s) fmt.Println(&s) ``` 这个不可变到底指的是啥意思?上面的代码不就使s这个string变量改变了吗?而且s的地址也没有变化(说明没有给s重新分配内存),那这样看来,s就是可变的呀,实在不懂,求解惑 ...阅读全文

Go 1.13 errors 基本用法

Go 最新版本 1.13 中新增了 errors 的一些特性,有助于我们更优雅的处理业务逻辑中报错的问题。本文主要展示 errors 包中新增方法的用法。 核心思想:套娃 啥意思呢?这玩意就像套娃一样,从上往下扒,拿走一个还有一个,再拿走一个,诶还有一个,如果你愿意,可以一直扒到最底下没有了为止。 基本用法 1. 创建一个被包装的 error 方式一:fmt.Errorf 使用 %w 参数返回一个被包装的 error err1 := errors.New("new error") err2 := fmt.Errorf("err2: [%w]", err1) err3 := fmt.Errorf("err3: [%w]", err2) fmt.Println(err3) // output e...阅读全文

博文 2019-09-16 19:32:42 sxssxs