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

golang fmt格式“占位符”

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %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...阅读全文

Go 字符串格式化

Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := point{1, 2} fmt.Printf("%v\n", p) // 如果所格式化的值是一个结构体对象,那么`%+v`的格式化输出 // 将包括结构体的成员名称和值 fmt.Printf("%+v\n", p) // `%#v`格式化输出将输出一个值的Go语法表示方式。 fmt.Printf("%#v\n", p) // 使用`...阅读全文

博文 2014-11-22 12:00:06 fer_ba

golang中sort包用法

golang中也实现了排序算法的包sort包. sort包中实现了3种基本的排序算法:插入排序.快排和堆排序.和其他语言中一样,这三种方式都是不公开的,他们只在sort包内部使用.所以用户在使用sort包进行排序时无需考虑使用那种排序方式,sort.Interface定义的三个方法:获取数据集合长度的Len()方法、比较两个元素大小的Less()方法和交换两个元素位置的Swap()方法,就可以顺利对数据集合进行排序。sort包会根据实际数据自动选择高效的排序算法。 type Interface type Interface interface { Len() int // Len 为集合内元素的总数 Less(i, j int) bool //如果index为i的元素小于index为j的元素...阅读全文

博文 2015-06-17 20:02:37 chenbaoke

golang printf 格式化输出

https://blog.csdn.net/qq_34777600/article/details/81266453 Printf 格式化输出 通用占位符: v 值的默认格式。 %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符 布尔值: %t true 或 false 整数值: %b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode格式:U+1234,等同于 "U+%04X" 浮点数及复数: %b 无小数部分的...阅读全文

博文 2019-05-09 12:34:53 DragWellGoHead

golang的标准输入输出

golang中的标准输出很简单: package main import ( "fmt" ) func main() { fmt.Println("Hello world"); } 标准输入的,自己试了好多次都不行: package main import ( "fmt" ) func main() { var str string fmt.Scanln(str) fmt.Printf("INPUT :%s\n", str); } 结果发现正确的应该是在str前加&: package main import ( "fmt" ) func main() { var str string fmt.Scanln(&str) fmt.Printf("INPUT :%s\n", str); } 小记一...阅读全文

博文 2014-10-04 19:26:55 无量神通

golang的fmt包

package fmt import "fmt" mt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。 Printing verb: 通用: %v 值的默认格式表示。当输出结构体时,扩展标志(%+v)会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 布尔值: %t 单词true或false 整数: %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U 表示为Unicode格式:U+1234,等价于"U+%04...阅读全文

博文 2014-10-04 19:26:41 刘地

golang os.Args

package main import( "os" "fmt" ) func main(){ if len(os.Args)!=0{ fmt.Println(os.Args[0])// args 第一个片 是文件路径 } fmt.Println(os.Args[1]) // 第二个参数是, 用户输入的参数 例如 go run osdemo01.go 123 } /* 结果 C:\Users\lyl\AppData\Local\Temp\go-build048711186\command-line-arguments\_obj\exe\osdemo01.exe 123 *...阅读全文

博文 2017-11-15 09:03:06 304158

Golang获取终端输入

package main import "fmt" //var a,b int = 10,20 func main() { //fmt.Println(a,b) // b,a = a,b // fmt.Println(a,b) //要求: 可以从控制台接受用户的信息 【姓名,年龄,薪水,是否通过考试】 //方式1 fmt.Scanln() var name string var age byte var sal float32 var ispass bool fmt.Println("请输入姓名:") //当程序只是到fmt.Scanln(&name)程序会停止执行等待用户输入 fmt.Scanln(&name) fmt.Println("请输入年龄:") //当程序只是到fmt.Scanl...阅读全文

博文 2019-02-26 00:35:44 tianya1993

golang时间格式化

golang中如何输入当前时间 package main import( "fmt" "time" ) func main(){ t := time.Now() y,m,d := t.Date() today := time.Now().Format("2006-01-02") datetime := time.Now().Format("2006-01-02 15:04:05")//后面的参数是固定的 否则将无法正常输出 fmt.Println("time is : ",t ) fmt.Println("y m d is : ",y,m,d ) fmt.Println("now is :",today) fmt.Println("now is :",datetime) ...阅读全文

博文 2015-06-17 20:04:06 herohenu

golang中的格式化输入输出

【简介】 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf。格式“占位符”衍生自 C,但比 C 更简单。 【打印】 占位符: [一般] %v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名 %#v 相应值的 Go 语法表示 %T 相应值的类型的 Go 语法表示 %% 字面上的百分号,并非值的占位符 [布尔] %t 单词 true 或 false。 [整数] %b 二进制表示 %c 相应 Unicode 码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由 Go 语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode 格式:U+1234...阅读全文

博文 2016-06-01 11:00:01 xiaoyida11

Go语言fmt.Printf的使用

Fmt包 import "fmt" 简介 ▾ Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。 输出 格式: 一般: %v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names %#v 值的Go语法表示。 %T 值的类型的Go语法表示。 %% 百分号。 布尔型: %t 值的true或false 整型: %b 二进制表示 %c 数值对应的Unicode编码字符 %d 十进制表示 %o 八进制表示 %q 单引号 %x 十六进制表示,...阅读全文

博文 2015-10-28 21:00:32 fyxichen

Golang Printf、Sprintf 、Fprintf 格式化

https://www.cnblogs.com/dfsxh/p/10316601.html /* %v 输出结构体 {10 30} %+v 输出结构体显示字段名 {one:10 tow:30} %#v 输出结构体源代码片段 main.Point{one:10, tow:30} %T 输出值的类型 main.Point %t 输出格式化布尔值 true %d输出标准的十进制格式化 100 %b输出标准的二进制格式化 99 对应 1100011 %c输出定整数的对应字符 99 对应 c %x输出十六进制编码 99 对应 63 %f输出十进制格式化 99 对应 63 %e输出科学技科学记数法表示形式 123400000.0 对应 1.234000e+08 %E输出科学技科学记数法表示形式 1234...阅读全文

博文 2019-06-18 14:02:47 w85278161

使用Goproxy解决golang.org模块无法下载的问题

简介Goproxy 中国完全实现了 Go 的模块代理协议。并且它是一个由中国备受信赖的云服务提供商七牛云支持的非营利性项目。目标是为中国和世界上其他地方的 Gopher 们提供一个免费的、可靠的、持续在线的且经过 CDN 加速的模块代理。愉快地编码吧,Gopher 们!;-)用法 macOS 或 Linux打开你的终端并执行:$ export GOPROXY=https://goproxy.cn或者$ echo "GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile完成。Windows打开你的 PowerShell 并执行:C:\> $env:GOPROXY = "https://goproxy.cn"或者1. 打开“开...阅读全文

go语言键盘输入(摘自the-way-to-go)

我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 `os.Stdin` 读取输入,最简单的办法是使用 `fmt` 包提供的 Scan 和 Sscan 开头的函数。请看以下程序: ```go // 从控制台读取输入: package main import "fmt" var ( firstName, lastName, s string i int f float32 input = "56.12 / 5212 / Go" format = "%f / %d / %s" ) func main() { fmt.Println("Please enter your full name: ") fmt....阅读全文

golang的服务控制实践

转自自己在csdn的博客:http://blog.csdn.net/qq_26981997/article/details/52275456 对于程序及服务的控制,本质上而言就是正确的启动,并可控的停止或退出。在go语言中,其实就是程序安全退出、服务控制两个方面。核心在于系统信号获取、Go Concurrency Patterns、以及基本的代码封装。 ## 程序安全退出 ### 执行代码非安全写法 在代码部署后,我们可能因为服务配置发生变化或其他各种原因,需要将服务停止或者重启。通常就是for循环阻塞,运行代码,然后通过control+C或者kill来强制退出。代码如下: ```Go //file svc1.go package main import ( "f...阅读全文

golang fmt占位符

golang fmt格式“占位符” qing123 · 2015-03-21 03:00:01 · 43307 次点击 · 预计阅读时间 2 分钟 · 大约1分钟之前 开始浏览 这是一个创建于 2015-03-21 03:00:01 的文章,其中的信息可能已经有所发展或是发生改变。 golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段...阅读全文

博文 2018-07-14 18:30:00 Csir

Go语言fmt包Printf方法详解

Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。 General %v 以默认的方式打印变量的值 %T 打印变量的类型 Integer %+d 带符号的整型,fmt.Printf("%+d", 255)输出+255 %q 打印单引号 %o 不带零的八进制 %#o 带零的八进制 %x 小写的十六进制 %X 大写的十六进制 %#x 带0x的十六进制 %U 打印Unicode字符 %#U 打印带字符的Unicode %b 打印整型的二进制 Integer width %5d 表示该整型最大长度是5,下面这段代码 12 fmt.Printf("|%5d|", 1) fmt.Printf("|%5d|", 1234567) 输出结...阅读全文

博文 2017-09-21 12:17:25 johng

Golang 统计字符串字数

比如新浪微博发微博的输入框有一个已输入字数的统计,它的规则推测是:汉字和中文标点算 1 个字数,英文和其他符号算 0.5 个字数。不足 1 个字算 1 个。大家可以去微博体验一下计算方式。​golang 可以使用正则和 unicode 包的方法判断。以下函数 GetStrLength 返回输入的字符串的字数,每个汉字和中文标点算 1 个字数,英文和其他字符算半个字数,不足 1 个字算 1 个。大家可以去微博体验一下。// GetStrLength 返回输入的字符串的字数,汉字和中文标点算 1 个字数,英文和其他字符 2 个算 1 个字数,不足 1 个算 1个 func GetStrLength(str string) float64 { var total float64 reg := re...阅读全文

博文 2018-05-09 11:14:03 nfwater

Go strconv包_字符串和数值类型的转换

Go strconv包_字符串和数值类型的转换 将字符串转换成数值类型和布尔类型 package main import ( "fmt" "strconv" ) func main() { str1 := "0.23" f1, _ := strconv.ParseFloat(str1, 64) f2, _ := strconv.ParseFloat(str1, 32) fmt.Println(f1) //0.23 fmt.Println(f2) //0.23 fmt.Println(f2 * 100) str2 := "1234f" // 16进制的字符串 // 将字符串解析为整数,ParseInt 支持正负号,ParseUint 不支持正负号。 // base 表示进位制(2 到 36),...阅读全文

Golang中Switch的使用

跟一般语言的Switch有点不一样,Golang在使用两个case的时候,是第一个是不生效的。 如下的代码 switch (type) { case 1: case 2: return "a"; case 3: return "b" default: return "c" } 在Java中,输入1,2都是返回a,输入3是返回b,其他是c。 但是在Go中,输入1竟然是返回c,被坑过几次。 如果想在Go中达到类似Java的效果,只能这么写: switch type { case 1: return "a" case 2: return "a"; case 3: return "b" default: return "c" } 一条条写明显太费劲了,所以还可以这么写: switch type { ...阅读全文

博文 2016-08-11 02:00:12 sydbfhwj

Go语言学习之路(五)输入和输出

输出语句 1.输出方法 fmt.Println()//换行输出 fmt.Print()//不换行输出 fmt.Printf() 2.输入方法 数据间隔只能使用回车 数据间隔可以使用空格和回车 fmt输入输出(printf和scanf采用的数据类型格式化) Scan()函数和Scanf()方法关于字符型变量的问题: var a byte fmt.Scan(&a) fmt.Printf("%c",a) Scan接收字符型变量时只接收整型 并通过ASCII码值转换为字符型 var a byte fmt.Scanf("%d",&a) fmt.Printf("%c",a) Scanf %d只能接收整型,不能接收字符型 所以在输入字符型变量时应该使用fmt.Scanf(“%c”,&a) 格式 含义 %%...阅读全文

博文 2018-12-17 00:31:01 weixin_39640179

Go 实现的数学表达式解析计算引擎math-engine

使用 Go 实现的数学表达式微型计算引擎,无任何依赖,相对比较完整的完成了数学表达式解析执行,包括词法分析、语法分析、构建AST、运行。 [Demo](http://wx3.sinaimg.cn/large/c2a95e3dly1g4i4unamlhg211o0iokk1.gif) ## TODO ### 已实现 *  加 + *  减 - *  乘 * *  除 / *  取余 % *  整数次方 ^ *  科学计数法 e.g. 1.2e7 *  括号 () *  混合运算 e.g. 1+26/4_+_(456_-_89.2)-(2+4^5) *  友好的长数字 e.g. 123_456_789 *  友好的错误消息 e.g. 阅读全文

fmt.Scanf不能输入

各位大侠,我是新手,最近刚学习go,在练习的时候不能输入,是什么问题呢? 以下是代码: package main import "fmt" func main() { var a int var f float32 var str string fmt.Println("准备录入数据:") fmt.Scanf("%d, %f, %s", &a, &f, &str) //录入数据 fmt.Println("输出录入结果:") } 运行结果如下: 准备录入数据: 输出录入结果: 错误:没有地方让我输入,我明明写了输入语句的呀?这是什么回事呢?? 希望各位大侠帮忙看一下,谢...阅读全文

golang fmt.printf I/O 函数格式化说明

[TOC] 说明 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf格式“占位符”衍生自 C,但比 C 更简单 常用格式化输出 fmt.Printf("start at number %v, end count %v\n",start, count) 注意参数输出数量和占位符数量要一致 IDEA开发快速格式化模板 使用IDEA开发可以配置自定义代码模板快速生成 Settings -> Editor -> Live Templates 选中 go 语言展开 选则增加一条 Abbreviation 填写 fpf Description 填写 print fmt format Template text fmt.Printf("$END$",$VAR$) Appli...阅读全文

博文 2017-03-05 19:34:39 泛原罪

RobotGo v0.10.0,Golang 跨平台 GUI 自动化系统(模拟鼠标键盘和控制bitmap以及屏幕)

RobotGo v0.10.0 发布了。v0.10.0 是针对RobotGo优化完善的版本,用于类似于GUI自动化等场景(模拟鼠标键盘和控制bitmap以及屏幕)。 主要变更: 增加主要的bitmap操作支持 更新屏幕方法,增加直接返回bitmap方法 更新测试 优化内存释放 更新文档 更新C方法命名 修复BUG: 修复输入法导致的空指针bug 修复Mac ScreenCapture模糊问题 修复mouse类型冲突bug 安装: go get github.com/go-vgo/robotgo 项目地址: https://github.com/go-vgo/robotg...阅读全文

go语言之exec.Cmd

package main import ( "fmt" "log" "os/exec" "bytes" "strings" ) func main() { cmd := exec.Command("tr", "a-z", "A-Z") cmd.Stdin = strings.NewReader("some input") //输入 var out bytes.Buffer cmd.Stdout = &out //输出 err := cmd.Run() if err != nil { log.Fatal(err) } fmt.Printf("in all caps: %q\n", out.String()) } 作用:把小写转成大写 输出:in all caps: "SOME INPUT" 整...阅读全文

博文 2015-06-17 23:02:22 zistxym

golang循环递增数组查找值

循环递增数组查找值 golang1.实现要求 在循环递增数组中查找某个值2.实现方法使用二分法实现查找使用定义循环递增数组是指数组收尾项链能够形成递增的环eg:[4,5,6,7,8,9,1,2,3]严格单调数组 数组从左往右一直增长eg:[1,2,3,4,5,6]实现思路将数组根据二分法进行分割将数组通过中间值分割后得到两个数组 一个为低调递增数组 另一个为循环递增数组 通过查找值比较进而确定查找值得范围在那个数组中 一次循环执行这一步得到是否能够查找值代...阅读全文

博文 2017-07-04 16:06:15 我是不是小明

Go fmt包 翻译 完毕

Fmt包 import "fmt" 简介 ▾ Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。 输出 格式: 一般: %v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names %#v 值的Go语法表示。 %T 值的类型的Go语法表示。 %% 百分号。 布尔型: %t 值的true或false 整型: %b 二进制表示 %c 数值对应的Unicode编码字符 %d 十进制表示 %o 八进制表示 %q 单引号 %x 十六进制表示,...阅读全文

博文 2015-01-08 14:00:01 cometwo

go语言标准库

像 fmt、os 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分(一些底层的除外)内置于 Go 本身。完整列表可以在 Go Walker 查看。 unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会被使用,可用在 C/C++ 程序的调用中。 syscall-os-os/exec: os: 提供给我们一个平台无关性的操作系统功能接口,采用类Unix设计,隐藏了不同操作系统间差异,让不同的文件系统和操作系统对象表现一致。 os/exec: 提供我们运行外部操作系统命令和程序的方式。 syscall: 底层的外部包,提供了操作系统底层调用的基本接口。 通过一个 Go 程序让Linux重启来体现它的能力。 package main i...阅读全文

博文 2019-08-10 12:34:16 ChenQuan

Golang语言基础教程:键盘输入和打印输出

一、打印输出1.1 fmt包fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。详见官网fmt的API:https://golang.google.cn/pkg/fmt/​1.2 导入包import "fmt"1.3 常用打印函数打印:func Print(a ...interface{}) (n int, err error)格式化打印:func Printf(format string, a ...interface{}) (n int, err error)打印后换行func Println(a ...interface{}) (n int, err error)格式化打印中的常用占位符:格式化打印占位符: %v,原样输出 ...阅读全文

golang99道练习题之02

**题目:企业发放的奖金根据利润提成。** **利润(I)低于或等于10万元时,奖金可提10%;** **利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;** **20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;** **60万到100万之间时,高于60万元的部分,可提成1.5%;** **高于100万元时,超过100万元的部分按1%提成从键盘输入当月利润,求应发放奖金总数?** **1.程序分析:请利用数轴来分界,定位。** **2.程序源代码:** ```go package main import "fmt" func main() { var bonus,bonus1 f...阅读全文

博文 2018-11-16 17:00:46 hdking

Go 每日一库之 go-app

简介 go-app是一个使用 Go + WebAssembly 技术编写渐进式 Web 应用的库。WebAssembly 是一种可以运行在现代浏览器中的新式代码。近两年来,WebAssembly 技术取得了较大的发展。我们现在已经可以使用 C/C++/Rust/Go 等高级语言编写 WebAssembly 代码。本来就来介绍go-app这个可以方便地使用 Go 语言来编写 WebAssembly 代码的库。 快速使用 go-app对 Go 语言版本有较高的要求(Go 1.14+),而且必须使用Go module。先创建一个目录并初始化Go Module(Win10 + Git Bash): $ mkdir go-app && cd go-app $ go mod init 复制代码然后下载安...阅读全文

博文 2020-04-24 11:34:52 darjun

用dep代替 go get 来获取私有库

用 dep 代替 go get 来获取私有库 (金庆的专栏 2017.11) go get 功能比较弱,无法获取分支,标签,特定版本,fork, 而 dep 可以做到。dep 还可以获取私有库。 用 gitee.com 私有库作测试。创建 gogettest 库。 可用: go get -u gitee.com/jinq0123/gogettest 如果改为私有库则失败: λ go get -v gitee.com/jinq0123/gogettest Fetching https://gitee.com/jinq0123/gogettest?go-get=1 Parsing meta tags from https://gitee.com/jinq0123/gogettest?go-get...阅读全文

博文 2017-11-27 08:01:02 jq0123

Golang Json 科学计数法

文章目录 使用Go解析一个从其他接口返回的JSON字符串,有时会遇到数字以科学计数法的形式展现,比如 源: 1{"message": "success", "data": 6566651968} 处理后: 1{"message": "success", "data": 6.566651968e+09} Go程序大体如下: 123456789101112func xxxx() { // ...... v := make(map[string]interface{}) // body是后端的http返回结果 err = json.Unmarshal(body, &v) if err != nil { // 错误处理 } ...} 例如Python遇到普通数值解析出来为int, 碰到科学技术法解析...阅读全文

分布式任务执行系统Gleam-Go

Gleam 是一个高性能和高效的分布式执行系统。纯 Go 编写,可独立运行,也可分布式运行。 纯 Go 编写的 mapper 和 reducer 具有高性能和并发性 LuaJIT 的性能,可与 C,Java,Go 相媲美。 它可流式处理数据,而不用在 Go 和 Lua 之间的上下文切换 数据通过内存时,可选择是否流入磁盘 多个 map/reduce 步骤被合并在一起以获得更好的性能 Gleam 不会发生常见的 GC 问题。 每个执行器在单独的 OS 进程中运行。 存储器由 OS 管理。 一台机器可以托管多个执行器 Gleam 主服务器和代理服务器是内存高效,只消耗大约 10 MB 内存 Gleam 尝试根据数据大小提示自动调整所需的内存大小,避免尝试法导致的错误,及手动调整...阅读全文

Ubuntu 16.04安装GoLand后不能切换到搜狗输入法

现象: 1、通过命令行命令./golang.sh启动时,不能使用搜狗输入法; 2、通过命令行命令sudo ./golang.sh启动时则可以,但添加到launch后,通过点击图标则还是不行。 解决办法: 1、在命令行中以"sudo ./golang.sh"启动GoLand; 2、新建或打开一个项目,然后点击Tools->Create Desktop Entry 3、cd /usr/share/applicatons,打开jetbrains-goland.desktop,在"Exec="后增加"gksu ",注意gksu后面的空格,gksu要提前安装(sudo apt-get install gksu) 4、安装gconfig-editor,然后按alt+F2打开,在/apps/gksu下勾选...阅读全文

博文 2019-12-12 19:32:45 wxb2dyj

Go 每日一库之 go-app

简介 go-app是一个使用 Go + WebAssembly 技术编写渐进式 Web 应用的库。WebAssembly 是一种可以运行在现代浏览器中的新式代码。近两年来,WebAssembly 技术取得了较大的发展。我们现在已经可以使用 C/C++/Rust/Go 等高级语言编写 WebAssembly 代码。本来就来介绍go-app这个可以方便地使用 Go 语言来编写 WebAssembly 代码的库。 快速使用 go-app对 Go 语言版本有较高的要求(Go 1.14+),而且必须使用Go module。先创建一个目录并初始化Go Module(Win10 + Git Bash): $ mkdir go-app && cd go-app $ go mod init 然后下载安装go-...阅读全文

博文 2020-04-23 23:32:44 darjun

golang 格式化输入输出

fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf。格式“占位符”衍生自 C,但比 C 更简单。 【打印】 占位符: [一般] %v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名 %#v 相应值的 Go 语法表示 %T 相应值的类型的 Go 语法表示 %% 字面上的百分号,并非值的占位符 [布尔] %t 单词 true 或 false。 [整数] %b 二进制表示 %c 相应 Unicode 码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由 Go 语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode 格式:U+1234,等同于 ...阅读全文

博文 2015-12-22 12:00:05 zhangxing__

八皇后问题详细推导(递归和非递归,Go语言实现)

回溯法解八皇后问题(递归和非递归,Go语言实现) 问题重现: 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?如果问题拓展到n*n,又有多少种摆法? 分析: 回溯法解8*8问题 棋盘横坐标i,纵坐标j,7>=i>=0且7>=j>=0,皇后摆法位置(i,j) 用pos[i]记录第i个皇后放的位置 分析:用0表示没有,用1表示已有 用a[i]表示第i行是否摆放了皇后(a取值在0~7) 用b[j]表示第j列是否摆法了皇后(b取值在0~7) 用c[j-i+7]正对角线是否摆放了皇后(c取值在0~14) 用d[i+j]斜对角线是否摆法了皇后(d取值在0~14) 优化: a[i]这个判断条件可以省略,因为在取皇后的时候,皇后不能放...阅读全文

博文 2015-06-17 23:00:50 WAPWO

go调用c/c++ dll 函数,char*参数及返回值问题

如:dll中有个函数, char* myfun(char* a) a为输入输出参数,返回值为char* 请问, 调用时该怎样传参数a(a的值改变后,go程序会继续调用的),返回值该如何接收(注意:请考虑char*为二进制流) 如:r1,r2,r3 := syscall.Syscall(uintptr(myfun),1,XXX,0,0,0) 1. 对r1怎样操作,可以取到返回值? 2. a为输入输出参数,意思就是,myfun会取到a的值,并改变a的值,a的值改变后,go中怎样取到了?a该怎么传递了...阅读全文

从golang的垃圾回收说起(上篇)

本文来自网易云社区1 垃圾回收中的重要概念1.1 定义In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program. Garbage collection was invented by John McCarthy around 1959 to simplify manual memory manage...阅读全文

博文 2018-08-28 21:30:00 163yun

go bug: fmt.Scanf("%s", &str)不能接受中文

发现了go的一个bug: fmt.scanf("%s", &str)不能接受中文,只能接受ascii码.见下列代码: ```go package main import ( "fmt" ) func main() { var ( a int f float32 str string ) fmt.Println("准备录入数据: ") fmt.Scanf("%d,%f,%s", &a, &f, &str) fmt.Println("输出录入结果: ") fmt.Println(a, f, str) } ``` 如果输入 10,34.12,string 会正常输出10,34.12, string 但如果...阅读全文

golang的服务控制实践

对于程序及服务的控制,本质上而言就是正确的启动,并可控的停止或退出。在go语言中,其实就是程序安全退出、服务控制两个方面。核心在于系统信号获取、Go Concurrency Patterns、以及基本的代码封装。 程序安全退出 执行代码非安全写法 在代码部署后,我们可能因为服务配置发生变化或其他各种原因,需要将服务停止或者重启。通常就是for循环阻塞,运行代码,然后通过control+C或者kill来强制退出。代码如下: //file svc1.go package main import ( "fmt" "time" ) //当接收到Control+c,kill -1,kill -2,kill -9 均无法正常执行defer函数 func main() { fmt.Println("app...阅读全文

博文 2016-09-05 10:00:03 qq_26981997

Windows中读取os.Stdin失败 : /dev/stdout: Access is denied.

### 环境: 操作系统:Windows 10 Go Version: go version go1.10.3 windows/amd64 ### 示例代码: ``` counts := make(map[string]int); os.Stdin.Chmod(os.ModeSetuid) input := bufio.NewScanner( os.Stdin); os.Stdin.WriteString("this is a test") for ; ; { if res := input.Scan(); res { test := input.Text(); if test == "exit"{ break; } counts[test]++; }else { fmt.Printf("%...阅读全文

博文 2018-08-18 19:41:56 luckydogchina